前言:你可以試試清除緩存這種最直接的方法 說不定就解決了 如果解決不了在參看以下步驟
問題:在vue項目中引入靜態資源,放在public文件夾里使用絕對路徑
本地運行是沒問題的,打包后發布到正式環境卻報此錯誤 Uncaught SyntaxError: Unexpected token ‘<‘
問題方向:這樣的問題一般都是我們在打包后引入的資源路徑出錯的問題
解決方法:我們可以在URL路徑前面加上一個公共的路徑,即我們的打包配置中publicpath的前綴 <%= BASE_URL %>
或者:只要把這里的 publicPath 設置為 "/" 就行,前面不要加點,改了之后問題就解決了。
提示:其實系統默認就是‘/’,只是部署的時候看到別人的文章都說需要改,就加了個’.’上去,后來發現其實不改就可以了,改了反而會報錯,最新版的vue在部署的時候已經不需要修改默認的路徑了。
1、public 目錄提供的是一個應急手段,當通過絕對路徑引用時,需要留意應用會部署到哪里。如果沒有部署在域名的根部,需要為你的 URL 配置 publicPath 前綴:
<script src="/js/xx.js"></script>
由于項目正式環境沒有部署在域名的根部
,所以需要在URL中配置publicPath 前綴
<script src="<%= BASE_URL %>js/xx.js"></script>
在vue.config.js中聲明,正式環境前綴需帶上“/demo”,那么這里的BASE_URL
就相當于/demo
publicPath: process.env.NODE_ENV === "production" ? "/demo" : "/",
2、static 目錄,與src同級,一般存放第三方文件,不會被 webpack 解析,會直接被復制到最終的打包目錄(默認是 dist/static )下,必須使用絕對路徑引用,這些文件是不會變動的。
3、assets目錄,在編譯過程中會被 webpack 處理,當做模塊依賴,只支持相對路徑的形式。一般放置可能會變動的文件。
注:public 與 static的區別在于:static是vue2.x以下版本的,vue2.x以上的就換成public目錄了