前端React項目遇到【Uncaught SyntaxError: Unexpected token '<'】錯誤的解決方式


問題描述

前端部署好項目后,打開相應的頁面顯示一片空白,打開console顯示

問題排查思路

理解問題的本質

出現這個錯誤的原因是瀏覽器期望得到js文件,但頁面卻返回了html文件,如圖中的js文件點擊進去卻得到index.html

而其實際的內容是

出現這個現象的原因是我在nginx中設置了

也就是說它找不到相對應的js文件就會加載index.html。但是這個設置不影響此問題,問題的本質仍然是 找不到對應的js文件

解決方法

首先,我打包時把靜態文件存放在 /usr/share/nginx/html/admin,我的nginx配置如下

location /admin/ {
    root  /usr/share/nginx/html/;
    index  index.html index.htm;
    try_files $uri $uri/ /admin/index.html;
}

由於location中請求的是/admin/,所以root的路徑不必加上admin/,它會自己去找並加載root/admin/index.html。

由上可知,我的所有靜態文件都應該在/usr/share/nginx/html/admin下,去服務器看了一下,確實是的。那么再看上面的圖片,可以發現它並沒有去請求admin文件夾下的靜態文件,所以它找不到。也就是說讓這個src地址加上/admin的前綴就可以了。

添加的方法是在build的時候設置publicPath。

如果你沒有額外使用webpack進行打包,則可以在package.json中添加一行"homepage": "/admin"

或者在webpack.config.js中添加

⚠️注意:publicPath變量后面的斜杠要不要加,具體看你的js文件路徑前面有沒有斜杠,有就不加,沒有就加。


免責聲明!

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



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