nginx部署二級目錄無法加載css和js的問題及解決過程
nginx部署二級目錄無法加載css和js
項目前后端分離,前端采用react和umijs框架開發(fā),前端頁面部署在nginx上面。
原先的所有項目一直采用二級域名的部署方式,前端打包后上傳到nginx目錄下就能正常訪問,一直沒出現(xiàn)什么問題。
本次項目部署在二級目錄下,訪問地址為:https://www.xxxxxx.com/cms/。
前端頁面打包后上傳nginx目錄,過程中出現(xiàn)了訪問不到css和js的問題,問題詳情及解決方案如下。
問題一:訪問首頁index.html報404
前端頁面目錄:/usr/local/nginx/html/cmspage/dist,目錄下面上傳三個文件:index.html、umi.css、umi.js。
- nginx配置:
location /cms/ {
root html/cmspage/dist;
index index.html index.htm;
}
重啟nginx后,訪問https://www.xxxxxx.com/cms/,結(jié)果瀏覽器出現(xiàn)404。
查看nginx錯誤error.log日志文件,錯誤日志:
2022/07/06 15:55:57 [error] 25943#0: *161 "/usr/local/nginx/html/cmspage/dist/cms/index.html" is not found (2: No such file or directory), client: 172.16.252.1, server: www.xxxxxx.com, request: "GET /cms/ HTTP/1.1", host: "www.xxxxxx.com"
很明顯,從錯誤日志信息可以看出,首頁index.html所在的目錄竟然多了一層cms目錄。這應(yīng)該是跟nginx配置二級目錄/cms內(nèi)部機制有關(guān)。
于是創(chuàng)建cms目錄,將前端頁面文件上傳到目錄/usr/local/nginx/html/cmspage/dist/cms。
再次訪問,沒有了404錯誤,但是頁面一片空白。
問題二:訪問不到umi.js和umi.css
接著問題一,查看nginx錯誤error.log日志文件,錯誤日志:
2022/07/06 16:03:53 [error] 28172#0: *217 open() "/usr/local/nginx/html/build/umi.css" failed (2: No such file or directory), client: 172.16.252.1, server: www.xxxxxx.com, request: "GET /umi.css HTTP/1.1", host: "www.xxxxxx.com", referrer: "https://www.xxxxxx.com/cms/"
2022/07/06 16:03:53 [error] 28172#0: *217 open() "/usr/local/nginx/html/build/umi.js" failed (2: No such file or directory), client: 172.16.252.1, server: www.xxxxxx.com, request: "GET /umi.js HTTP/1.1", host: "www.xxxxxx.com", referrer: "https://www.xxxxxx.com/cms/"
很明顯,從錯誤日志信息可以看出,訪問umi.css和umi.js所在的目錄竟然是/usr/local/nginx/html/build,而不是/usr/local/nginx/html/cmspage/dist/cms。
嘗試把umi.css和umi.js放到/usr/local/nginx/html/build目錄下面,頁面正常。
但是,總不能每次發(fā)布頁面的時候單獨把umi.css和umi.js放到/usr/local/nginx/html/build目錄,而index.html放到/usr/local/nginx/html/cmspage/dist/cms目錄,這根本不是問題的解決方案?。?!
經(jīng)過一翻搜索最終解決方法
是修改.umirc.ts
- 如圖所示:

再次訪問https://www.xxxxxx.com/cms/,頁面正常了。
后續(xù)應(yīng)用發(fā)布的話,前端頁面上傳到/usr/local/nginx/html/cmspage/dist/cms目錄就好,問題解決?。?!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux下Nginx負載均衡多個tomcat配置的方法步驟
這篇文章主要介紹了Linux下Nginx負載均衡多個tomcat配置的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04
nginx版本號隱藏(附405 not allowed解決辦法)
版本號泄露時攻擊者會利用相應(yīng)軟件版本的當前漏洞,進行有效的相應(yīng)攻擊,本文主要介紹了nginx版本號隱藏,具有一定的參考價值,感興趣的可以了解一下2023-10-10
Nginx禁用TLSv1.0?1.1改為TLSv1.2?1.3的操作方法
使用Mozilla?SSL配置工具生成配置,修改nginx.conf的ssl_protocols和ssl_ciphers,通過ssllabs檢測及Linux命令測試TLS版本支持情況,確保網(wǎng)站SSL安全配置生效,本文給大家介紹Nginx禁用TLSv1.0?1.1改為TLSv1.2?1.3的操作方法,需要的朋友一起看看吧2025-08-08
Mac使用Nginx設(shè)置代理并禁用自帶Apache的問題記錄
本文介紹如何在Mac上禁用自帶的Apache服務(wù)并安裝Nginx,首先需要關(guān)閉Apache并禁止其自啟動,接著,通過Homebrew安裝Nginx,并配置其文件和目錄,最后,介紹了如何生成SSL/自簽名證書,詳細步驟包括修改Apache配置、安裝Nginx、編輯Nginx配置文件以及驗證和重啟Nginx服務(wù)2024-09-09

