最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

使用webpack定位Web时替代fs.readFile

IT培训 admin 9浏览 0评论

使用webpack定位Web时替代fs.readFile

在我的Electron应用程序中,我正在使用fs.readFile读取一些应用程序文件(不是用户文件,但是Electron应用程序根目录中的实际文件),但是这在包装Web时显然不起作用。或者,我尝试按照以下方式实现某些内容:

function loadFile(filePath: string) {
    let result = null;
    const xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", filePath, false);
    xmlhttp.send();
    if (xmlhttp.status === 200) {
        result = xmlhttp.responseText;
    }
    return result;
}

不幸的是,我得到以下例外:XMLHttpRequest cannot load file:///[...]/Testfile.txt. Cross origin requests are only supported for HTTP.

我想知道在打包网络时,我可以使用哪种方法来加载“服务器”文件的内容而不是本地文件(即使我目前正在本地测试)。

回答如下:

我的解决方案不起作用,因为我在浏览器中本地打开了应用程序,因此请求协议是file://。为了能够调试它,我安装了serve并启动了一个本地服务器来测试应用程序。

使用webpack定位Web时替代fs.readFile

在我的Electron应用程序中,我正在使用fs.readFile读取一些应用程序文件(不是用户文件,但是Electron应用程序根目录中的实际文件),但是这在包装Web时显然不起作用。或者,我尝试按照以下方式实现某些内容:

function loadFile(filePath: string) {
    let result = null;
    const xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", filePath, false);
    xmlhttp.send();
    if (xmlhttp.status === 200) {
        result = xmlhttp.responseText;
    }
    return result;
}

不幸的是,我得到以下例外:XMLHttpRequest cannot load file:///[...]/Testfile.txt. Cross origin requests are only supported for HTTP.

我想知道在打包网络时,我可以使用哪种方法来加载“服务器”文件的内容而不是本地文件(即使我目前正在本地测试)。

回答如下:

我的解决方案不起作用,因为我在浏览器中本地打开了应用程序,因此请求协议是file://。为了能够调试它,我安装了serve并启动了一个本地服务器来测试应用程序。

发布评论

评论列表 (0)

  1. 暂无评论