这是一个基础项目,使用了一些基于jquery的东西,一些ajax调用和一些原生HTML东西。该应用程序正在通过node.js启动。
代码示例
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/node_modules'));
app.use(express.static(__dirname + '/'))
app.use(express.static(__dirname + '/assets'))
app.use(express.static(__dirname + '/js'))
app.use(express.static(__dirname + '/node_modules'))
app.get('/', function(req, res,next) {
res.sendFile(__dirname + '/index.html');
});
var server = require('http').createServer(app);
console.log("Server running at port 7001");
server.listen(7001);
这在localhost:7001
上绝对可以正常工作,而且我们没有任何问题。现在,我们正在尝试将其部署在测试实例上,并且开发人员可以在其中启用一些功能。因此,现在我们的网址将类似于http://instanceip/something
因此,如果现在这样做,http://instanceip:7001
显然将无法工作,因为我们具有结尾URL。我将此添加到节点
app.get('/something', function(req, res,next) {
res.sendFile(__dirname + '/index.html');
});
现在,http://instanceip/something
重定向到index.html,但是没有加载所有资产,我尝试在index.html中添加something/assets
,但这都无济于事,并且我得到了404安慰。
问题
为什么未找到错误出现,反向代理服务器端需要一些设置?
我们如何解决它,有什么想法吗?
答案 0 :(得分:0)
好的做法是通过nginx提供所有静态内容。
因此,我们的想法是configure nginx
在某个文件夹中搜索静态文件。
您应该与“ devops people”交谈,并要求将所有静态文件加载到服务器上的目录中,并将nginx配置为从那里加载文件。
因此,非常简化的nginx解决方案将是设置配置文件:
server {
root /www/data;
location ~ \.js$ {
/path/on/server/to/directory
}
}
然后在html中,简单地添加如下https:// domain.com/somefile.js
这样的网址