gpt4 book ai didi

node.js - 使用 URL 重写从 iisnode 提供静态文件

转载 作者:搜寻专家 更新时间:2023-11-01 00:13:38 29 4
gpt4 key购买 nike

我在我的 web.config 文件中使用重写规则,让在 issnode 下运行的 Node 应用程序指向我的 server.js 文件。 myapp/* 指向 server.js。

    <rule name="myapp" enabled="true">
<match url="myapp/*" />
<action type="Rewrite" url="server.js" />
</rule>

这一直很好用 www.mywebsite.com/myapp/会加载并运行我的应用程序。我想要的是从网站的根目录进行重定向,以便 www.mywebsite.com/运行我的应用程序。所以我更改了我的 web.config 文件

    <rule name="myapp" enabled="true">
<match url="/*" />
<action type="Rewrite" url="server.js" />
</rule>

所以这是在运行 server.js 并提供我的静态 html 文件,唯一的问题是从我的 html 文件中引用任何外部文件(css、js、图像等)只需为每个请求获取 500s。我用它来提供静态文件

        var libpath = require('path');
var _path = "."; <-- This seems to be the problem


var uri = url.parse(req.url).pathname;
var filename = libpath.join(_path, uri);
fs.readFile(filename, "binary", function (err, file) {
if (err) {
res.writeHead(500, {
"Content-Type": "text/plain"
});
res.write(err + "\n");
res.end();
return;
}

var type = mime.lookup(filename);
res.writeHead(200, {
"Content-Type": type
});
res.write(file, "binary");
res.end();
});

break;

所以我的问题是如何指向我的 Node 应用程序/服务器的根目录以提供静态文件。

谢谢

乔诺

最佳答案

在 iisnode 中提供静态内容的最佳方式是配置 URL 重写模块,以便 IIS 静态文件处理程序处理对静态内容的请求,而不是 node.js。与使用任何 node.js 机制提供这些文件相比,让 IIS 提供静态内容具有很大的性能优势,因为围绕缓存进行了内核级优化,而且不必中断 JavaScript 代码。

有关实现此目的的样板 web.config 配置,请参阅 https://github.com/tjanczuk/iisnode/issues/160#issuecomment-5606547

关于node.js - 使用 URL 重写从 iisnode 提供静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10505918/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com