vue項目部署到Apache服務(wù)器中遇到的問題解決
最近剛重構(gòu)完,我們的一個項目,由原來的jsp模式改為了前后端分離,前端選型為vue,開發(fā)完成之后第一件時間就是要部署測試,服務(wù)端選的是Apache。本來以為很簡單的一件事情,幾經(jīng)坎坷部署了兩天才算能夠正常訪問了。先記錄如下,
過程搭建Apache環(huán)境,vue項目build之后把生成的dist文件放到,Apache下面,啟動Apache之后本以為能夠正常訪問了,
前提說下:vue項目路由model:history ,默認(rèn)不會出現(xiàn)下面的問題,因為個人感覺項目路徑中帶個#實在難受
但是發(fā)現(xiàn)錯誤如下:
無法正常訪問,報了一堆404,由于接觸vue項目不久,一臉懵逼,于是百度了一下內(nèi)容如下(vue項目部署到Apache404錯誤)發(fā)現(xiàn)有很多解決方案,最常見的就是增加.htaccess,自己也按照網(wǎng)上方式操作了一遍,反復(fù)更改無效,當(dāng)然有可能是自己配置的方式不對,反正我的是沒有解決。
于是換了一個思路重新搜索了一下,看到了另一篇文章:https://www.cnblogs.com/xyyt/p/7718867.html 茅塞稍微開了一點,我的正常配置如下:
無非就是要把多的那一段路由信息去掉而已,嘗試了如下變態(tài)的修改:
試著重新build發(fā)布一下到Apache,奇跡的事情發(fā)生了,沒問題了,一切正常,當(dāng)然我的修改方式我也感覺不是很妥當(dāng),當(dāng)實在找不到合適方式,只能暫時這樣的修改,所有的路徑都按照上面的修改,就能夠正常訪問了
vue項目部署到服務(wù)器頁面空白的問題
- 路由跳轉(zhuǎn)的時候使用mode: 'history'去掉#號,放到服務(wù)器crm目錄下,根據(jù)www.asa.com/crm路徑訪問,出現(xiàn)獲取不到資源問題,頁面一片空白,搜索問題,路由配置文件中添加mode: 'history', base: '/crm/',。
- 然后資源都獲取到了也都加載了但是頁面還是空白,沒有進(jìn)行渲染(這個問題好像和問題1相同,當(dāng)時沒有記錄下來現(xiàn)在回憶起來有點模糊),通過后端配置解決了問題。
- 頁面渲染成功各頁面跳轉(zhuǎn)頁都正常了,但是又出現(xiàn)了在當(dāng)前頁面刷新都會出現(xiàn)404的問題,因為只有一個index.html文件,url中的路由跳轉(zhuǎn)都是vue-router進(jìn)行在實際文件中沒有l(wèi)ogin.html等文件,服務(wù)器在找這些頁面會找不到出現(xiàn)404錯誤,因此需要后端服務(wù)器配置進(jìn)行404全部跳轉(zhuǎn)到index.html解決問題。
- 閑著沒事有想到問題3,后端到底如何配置的,自己就實現(xiàn)了一遍,以mac下自帶apache為例進(jìn)行配置
- 到mac下apache安裝路徑/private/etc/apache2/httpd.conf中, (apahce的配置文件)
開啟rewrite_module功能,
LoadModule rewrite_module libexec/apache2/mod_rewrite.so,去掉前面的#;
DocumentRoot "/users/Dev/sites"(設(shè)置apache默認(rèn)指向目錄) <Directory "/users/Dev/sites"> Options Indexes FollowSymLinks Multiviews MultiviewsMatch Any AllowOverride All Require all granted </Directory>
設(shè)置AllowOverride All是為了使apache支持.hatccess文件。
* 在該項目根目錄添加.hatccess文件(index.html平級),內(nèi)容跟https://router.vuejs.org/zh-cn/essentials/history-mode.html‘>HTML5 History 模式(vue-router文檔舉例)類似,
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /crm/ RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /crm/index.html [L] </IfModule>
,需要修改的兩個地方,RewriteBase /crm/;
RewriteRule . /crm/index.html [L],要添加項目所在文件的文件名,
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue3.0 vue.config.js 配置基礎(chǔ)的路徑問題
這篇文章主要介紹了vue3.0 vue.config.js 配置基礎(chǔ)的路徑問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10Echarts+VUE柱狀圖繪制細(xì)節(jié)并且屏幕自適應(yīng)完整代碼
柱狀圖(或稱條形圖)是一種通過柱形的長度來表現(xiàn)數(shù)據(jù)大小的一種常用圖表類型,這篇文章主要給大家介紹了關(guān)于Echarts+VUE柱狀圖繪制細(xì)節(jié)并且屏幕自適應(yīng)的相關(guān)資料,需要的朋友可以參考下2024-02-02vue3中vite的@路徑別名與path中resolve實例詳解
這篇文章主要給大家介紹了關(guān)于vue3中vite的@路徑別名與path中resolve的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-02-02vue項目退出登錄清除store數(shù)據(jù)的三種方法
最近使用vue做用戶的登錄/退出,在開發(fā)過程中遇到的一些問題,記錄下來,下面這篇文章主要給大家介紹了關(guān)于vue項目退出登錄清除store數(shù)據(jù)的三種方法,需要的朋友可以參考下2022-09-09