Electron 如何截获针对文件的请求并将其更改为http协议?

Electron 如何截获针对文件的请求并将其更改为http协议?,electron,Electron,在Electron中,是否可以拦截针对文件:///的请求并将其重定向到http 我已经查看了Electron页面,但不清楚是否支持此功能。您可以使用scheme文件来拦截文件:请求,而不是发出HTTP请求 示例(未测试): 注意:此示例可能需要改进,因为文件路径可能包含驱动器号,这对于HTTP请求无效。我还有另一种方法可以解决此问题,有趣的是,问题中的“截取”一词与此有很大关系:) 协议对象上有一个可以使用的函数 示例代码: app.on("ready", () => { prot

在Electron中,是否可以拦截针对文件:///的请求并将其重定向到http

我已经查看了Electron页面,但不清楚是否支持此功能。

您可以使用scheme
文件来拦截
文件:
请求,而不是发出HTTP请求

示例(未测试):


注意:此示例可能需要改进,因为文件路径可能包含驱动器号,这对于HTTP请求无效。

我还有另一种方法可以解决此问题,有趣的是,问题中的“截取”一词与此有很大关系:)

协议对象上有一个可以使用的函数

示例代码:

app.on("ready", () => {
    protocol.interceptHttpProtocol("http", function(request, callback) {
    var parsedUri = url.parse(request.url);

    var filePath = path.join(__dirname, parsedUri.pathname);
    request.url = "file://" + filePath; 

    callback(request);
  });

  var mainWindow = new BrowserWindow();

  mainWindow.loadURL("http://localhost/index.html");
});
希望有帮助

app.on("ready", () => {
    protocol.interceptHttpProtocol("http", function(request, callback) {
    var parsedUri = url.parse(request.url);

    var filePath = path.join(__dirname, parsedUri.pathname);
    request.url = "file://" + filePath; 

    callback(request);
  });

  var mainWindow = new BrowserWindow();

  mainWindow.loadURL("http://localhost/index.html");
});