Nginx请求根目录子文件夹build下的资源时返回404错误,寻求配置修改方案
Nginx请求根目录子文件夹build下的资源时返回404错误,寻求配置修改方案
看起来问题出在你的/build/路径配置和Passenger的资源接管逻辑上,咱们一步步来调整就能解决:
首先,你的整个server块里开启了passenger_enabled on;,这会让Passenger接管所有请求——包括/build/下的静态资源请求,导致Nginx没机会直接读取这些文件,反而把请求交给Rails处理,而Rails路由里没有对应/build/的规则,所以就返回404了。
给你两个可行的修改方案,选一个试试就行:
方案一:禁用/build路径下的Passenger(推荐)
直接在你的location /build/块里加上passenger_enabled off;,让Nginx直接处理这个路径下的静态文件:
location /build/ { passenger_enabled off; # 关键:让Nginx直接处理,不交给Passenger/Rails autoindex off; # 这里不需要重复设置root,外层的root已经指向了public目录,Nginx会自动拼接路径 }
方案二:用alias明确指定路径(备选)
如果方案一没起作用,也可以用alias直接指定build目录的绝对路径,同样要禁用Passenger:
location /build/ { passenger_enabled off; alias /home/inspection/app/current/public/build/; # 明确指向build文件夹 autoindex off; }
修改完配置后,别忘重启Nginx让配置生效:
sudo systemctl restart nginx
这样/build/下的静态资源就能被Nginx正确返回了,不会再出现404错误~
备注:内容来源于stack exchange,提问作者Arup Rakshit
相关产品推荐
相关产品推荐

