使用nginx配置多个node项目,静态文件404错误,跪求大神支招解决
发布于 6 年前 作者 shanelau 15907 次浏览 最后一次编辑是 4 年前

nginx配置应该怎么写 location /xxx{ root /home/aaa/xxx; proxy_pass http://127.0.0.1:8001; }

location /yyy{ root /home/aaa/yyy; proxy_pass http://127.0.0.1:8002 }

怎么取不到public里面的css等文件?

比如 http://121.14.58.212/2014 这个站点, 后台跳转到了 http://121.14.58.212:8001/ http://121.14.58.212/2014 这个站点的 css文件404 错误了 。。

怎么办啊,急求解决

8 回复

/2014 这个 path 破坏了楼主的 css 文件绝对路径

@alsotang 你说对了。原项目是没有 2014前缀的。在http://121.14.58.212:8001/ 中是完全正常的, 大神知道怎么解决不 node写的web项目 都是从跟路径 / 开始的, 能不能让所有请求加一个前缀 /2014这种的

@kissliux 这个你通过nginx配置就可以解决了呀,把http://121.14.58.212/2014这个地址影射成http://121.14.58.212/这个地方不就好了

@owen-hong 问题是,我有多个项目。a项目监听8001 端口, b项目监听8002端口, 但是希望他们在一个域名下面能访问得到

这是nginx配置的问题, 无论你用node, 还是php, rails 都会遇到这个问题.

如果配置的 nginx 是以 /xxx 为前缀区分应用的, 那么在 应用的代码里面, 资源根目录也必须以 /xxx 代替, 而不是默认的 /

使用express框架的项目,访问路径都是 以 ‘/’ 开头, 导致所有静态资源的请求都是以’/’ 开头 怎么给项目加上前缀 /xxx ,如果能加上/xxx 这个问题就解决了。

问题解决了。 我使用的express框架, 查阅express API 发现, 加上这样一行代码 就搞定了。 app.enable(‘trust proxy’); trust proxy 默认为 disable的

代码中 这样请求 <link rel=‘stylesheet’ href=‘stylesheets/style.css’ /> 实际会转换为 2014/stylesheets/style.css

回到顶部