使用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
并启动了一个本地服务器来测试应用程序。