我目前在 Ubuntu 服务器上使用 apache2,并在 apache2 站点可用配置中使用代理传递配置托管 Node js 应用程序。
我在我的服务器配置中添加了这一行
ProxyPass /nodeapps http://localhost:3000
但是当我尝试像这样在我的公共(public)目录中提供静态文件时,
app.use(express.static(__dirname + '/public'));
它在没有 proxypass 名称的情况下自动重定向,所以当我尝试打开我的
http://server-dns/nodeapps/help
我希望得到我的/public/help 目录,但它自动重定向到
http://server-dns/help
所以返回404错误
未找到
在此服务器上找不到请求的 URL/help/。
最佳答案
正如您在评论中指定的那样,似乎 index.html
在 sysadmin/nodejsapps/nodeapps/public/help/
目录中不可用或静态路径中存在问题因为你的网址 http://server-dns/help是正确的。所以交叉检查以下 2 点
Is
sysadmin/nodejsapps/nodeapps/public/help/index.html
exist ?
Is correct path used for static? You may like to usepath
module as bellow
var path = require('path');
app.use(express.static(path.join(__dirname, 'public')));
希望对您有所帮助:
关于node.js - 在 apache2 服务器上的 express Node js 中提供静态文件时自动重定向而无需代理传递名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39695696/