? ? ? ? electron項(xiàng)目在開發(fā)階段,因?yàn)槭褂脀ebpack腳手架,啟用了webServer提供的http服務(wù),所以有路由功能,當(dāng)我們運(yùn)行npm run electron:serve的時(shí)候,最后可以直接加載http://localhost:8080。在app里面就可以顯示頁(yè)面。
? ? 當(dāng)electron項(xiàng)目打包之后,成為桌面程序,這個(gè)時(shí)候就沒有http服務(wù)支撐,所以加載的是靜態(tài)頁(yè)面,win.loadURL("app://./index.html")。
? ? 這個(gè)首頁(yè)因?yàn)闆]有http服務(wù)支撐,所以沒有路由功能,最終無法顯示。解決辦法有兩個(gè),一個(gè)是改變路由設(shè)置模式,將mode:'history',改為mode:'hash'。就是修改router/index.js。
? ? 還有一種辦法就是配置一個(gè) {path:"*",component:()=>import('首頁(yè).vue')}的路由。
? ? 前面說了,桌面程序啟動(dòng),并沒有http服務(wù),所以當(dāng)發(fā)送ajax請(qǐng)求給其他url請(qǐng)求時(shí),就沒有所謂的baseURL指向某一個(gè)http://ip:port的url前綴,最后這個(gè)請(qǐng)求就會(huì)變?yōu)閍pp:///api/xxx。為什么在開發(fā)階段是可以的,因?yàn)殚_發(fā)階段有本地http服務(wù),而且有代理,所以不會(huì)出現(xiàn)請(qǐng)求地址錯(cuò)誤,更不會(huì)出現(xiàn)跨域問題。文章來源:http://www.zghlxwxcb.cn/news/detail-543198.html
? ? 這個(gè)問題的解決,1、修改請(qǐng)求時(shí)的url,給一個(gè)全路徑url( http://ip:port/api/xxx ),而不是相對(duì)url( /api/xxx )。最后請(qǐng)求會(huì)正確發(fā)出去,但是另一個(gè)問題來了,就是跨域。默認(rèn)electron安全策略是不支持跨域的。為了解決這個(gè)問題,我們需要自己設(shè)置忽略安全策略。2、在background.js中設(shè)置webPreferences:{webSecurity:false}。文章來源地址http://www.zghlxwxcb.cn/news/detail-543198.html
到了這里,關(guān)于electron項(xiàng)目打包之后顯示空白頁(yè)面以及發(fā)送http請(qǐng)求地址錯(cuò)誤的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!