部屬vue項目,訪問路徑設(shè)置非根,顯示白屏的解決方案
vue訪問路徑設(shè)置非根顯示白屏
問題:
訪問頁面,返回“We’re sorry but XXX doesn’t work properly without JavaScript enabled. Please enable it to continue.”
環(huán)境:
使用nginx部屬vue項目時,沒有把訪問項目設(shè)置為根路徑
說明:
當(dāng)訪問項目對應(yīng)的nginx配置沒有給項目的訪問路徑設(shè)置為根時,頁面顯示白屏,在network中可以看到所有資源都加載完成,
index.html會顯示
“We’re sorry but XXX doesn’t work properly without JavaScript enabled. Please enable it to continue.”信息;
如果將項目的nginx配置訪問路徑設(shè)置成根路徑,網(wǎng)站頁面可以正常訪問,但是請求的返回還是會有這樣的信息,這段信息就寫在了index.html頁面中;
分析原因是vue項目中會有對訪問路徑的判斷,如果不是根路徑,就不執(zhí)行js代碼,進(jìn)而顯示白屏。
解決
vue項目,訪問路徑不是根目錄,依照以下幾個步驟進(jìn)行設(shè)置,就可以正常訪問
1.修改vue.config.js,設(shè)置pbulicPath路徑

2.設(shè)置路由中的base信息

3.修改nginx,在serve中設(shè)置location /webroot

vue部署到非根目錄設(shè)置
假設(shè)部署到根目錄下app文件夾里
需要修改三處配置
1.config => index.js
? ?// Paths ? ? assetsRoot: path.resolve(__dirname, "../dist"), ? ? assetsSubDirectory: "static", ? ? assetsPublicPath: "/app/", //修改打包后路徑 ?修改這里
把 assetsPublicPath: "/", 修改成 assetsPublicPath: "/app/",
2.router => index.js
const router = new Router({
? mode: "history",
? // base: getAbsolutePath(),
? base: "/app/",
? routes: [...]
......增加基礎(chǔ)路徑 base:"/app/"
3.網(wǎng)站根目錄文件夾下修改配置文件,用的是IIS
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
? ? <system.webServer>
? ? ? ? <defaultDocument>
? ? ? ? ? ? <files>
? ? ? ? ? ? ? ? <clear />
? ? ? ? ? ? ? ? <add value="zkpt.asmx" />
? ? ? ? ? ? ? ? <add value="index.html" />
? ? ? ? ? ? ? ? <add value="Default.htm" />
? ? ? ? ? ? ? ? <add value="Default.asp" />
? ? ? ? ? ? ? ? <add value="index.htm" />
? ? ? ? ? ? ? ? <add value="iisstart.htm" />
? ? ? ? ? ? ? ? <add value="default.aspx" />
? ? ? ? ? ? </files>
? ? ? ? </defaultDocument>
? ? ? ? <!-- 刷新白屏增加配置start -->
?<rewrite>
? ? ? <rules>
? ? ? ? <rule name="Handle History Mode and custom 404/500" stopProcessing="true">
? ? ? ? ? <match url="(.*)" />
? ? ? ? ? <conditions logicalGrouping="MatchAll">
? ? ? ? ? ? <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
? ? ? ? ? ? <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
? ? ? ? ? </conditions>
? ? ? ? ? <action type="Rewrite" url="/app/" />
? ? ? ? </rule>
? ? ? </rules>
? ? </rewrite>
? ? </system.webServer>
? ? <!-- 刷新白屏增加配置end -->
</configuration>修改
<action type="Rewrite" url="/" />
為
<action type="Rewrite" url="/app/" />
這樣就可以了,親測沒有問題。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue3+vite使用vite-plugin-svg-icons插件顯示本地svg圖標(biāo)的方法
這篇文章主要介紹了vue3+vite使用vite-plugin-svg-icons插件顯示本地svg圖標(biāo)的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-12-12
Vue2為何能通過this訪問到data與methods的屬性
這篇文章主要介紹了Vue2為何能通過this訪問到data與methods的屬性,文章圍繞主題展開詳細(xì)的內(nèi)容戒殺,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
vue實現(xiàn)將一維數(shù)組變換為三維數(shù)組
這篇文章主要為大家詳細(xì)介紹了vue如何實現(xiàn)將一維數(shù)組變換為三維數(shù)組,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
vue+vant使用圖片預(yù)覽功能ImagePreview的問題解決
這篇文章主要介紹了vue+vant使用圖片預(yù)覽功能ImagePreview的問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
vue使用echarts圖表自適應(yīng)的幾種解決方案
這篇文章主要給大家介紹了關(guān)于vue使用echarts圖表自適應(yīng)的幾種解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

