前端打包文件在 nginx 上 403 的解決辦法


遇到的問題表現出來就是如題所述,因此作為題目。

我們知道,前端有很多方便的構建和打包工具,如 webpack 等,通常我們會把前端文件打包到dist目錄下,部署到服務器上,如 nginx 等。

這次遇到的問題是我下載了別人的一個代碼壓縮包,是一個 vue.js + webpack 的項目,構建好后上傳服務器,可以保證的是服務器上的 nginx 配置完全正確,但是在瀏覽器上怎么訪問都是 403 forbidden 。

仔細觀察項目結構與文件權限,發現項目下所有文件都是 755 的權限,所有文件夾都是 700 的權限,構建出來的文件也同樣繼承了這樣的權限,導致 nginx 無法訪問文件。詳細原理請參考 linux 文件權限和 nginx 文檔。

(如圖左為正常創建的文件權限,右為異常權限)

這里也有一個鏈接描述了這個問題:403 Forbidden Error and How to Fix it | Nginx Tips

下面我們需要修復文件權限,使得所有文件是 644 權限,而所有文件夾是 755 權限。一個一個設置太麻煩了,可以使用 find 命令加上文件類型判斷,來進行批量操作。

# 更改文件夾權限
find . -type d -exec chmod 755 {} \;
# 更改普通文件權限
find . -type f -exec chmod 644 {} \;

find 命令的用法請參考 man 手冊。

這樣,我們再次在瀏覽器訪問服務端地址,就可以正常訪問了。




本文基於知識共享許可協議知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議發布,歡迎引用、轉載或演繹,但是必須保留本文的署名BlackStorm以及本文鏈接http://www.cnblogs.com/BlackStorm/p/6964974.html,且未經許可不能用於商業目的。如有疑問或授權協商請與我聯系


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM