Vue專案部署遇到的問題及解決方案

2022-07-04 08:03:11 字數 1833 閱讀 4715

vue-router有兩種模式,預設是hash模式,另外一種是history模式。

hash 和 history 兩種模式都是基於瀏覽器自身的屬性,vue-router只是利用了這兩個特性(底層還是瀏覽器提供的介面)來實現前端路由。

一般來說,兩種模式都是可以的。除非在意不太漂亮的#,只能選擇 history。

這兩種模式在開發環境下都沒有什麼太大的問題,但是當部署到生產環境中後,兩者有所不同。

hash 模式部署沒有什麼問題,只要訪問到伺服器上的 index.html,就可以訪問**了。

history 模式下,前端的 url 必須和實際向後端發起請求的 url 一致,如。如果後端缺少對/user/id的路由處理,將返回 404 錯誤。

vue、react等單頁面專案應該這樣子部署到伺服器

因此,現把解決的思路總結下,雖然 官網 上給出了解決方案,但在實際的編碼中也遇到了一些問題。

當專案在根目錄下部署的時候(如),vue的相關檔案預設不需要修改,修改的是後端,這裡以 nginx 為例。

```location /

```$uri就是訪問的 url,不包含網域名稱querystring。例如/test/hello當訪問$uri時,如果存在,則訪問$uri/, 不存在就訪問/index.html這樣配置好,訪問時就可以訪問到**了,進入多級目錄後重新整理頁面也不會存在問題。

這裡涉及到修改vue專案幾個配置檔案。

先定義幾個環境

1. 打包後的靜態資源路徑需要修改

找到build/config/index.js,**如下:

...

build:

2. 路由檔案

vue-router有乙個base屬性, 傳送門

base

型別: string

預設值: "/"

因此,找到src/router/index.js,**如下:

// 不影響本地開發,相容性做了處理

const ishistorymode = process.env.node_env === 'production' ? : ;

const router = new router();

至此,打包配置的相關修改已全部完成,專案也能夠正常訪問。

但還是會有乙個問題,跳轉到某個路由後,重新整理頁面,就會出現頁面空白,或者路由不通,此時就要修改 nginx 的配置了。

3. nginx 配置相關修改

nginx部署路徑/conf/nginx.conf,修改如下:

#h5-year-bill

location ^~ /h5-year-bill

/h5-year-bill/就是部署的**目錄。

這樣幾項配置後,就可以在子目錄下訪問**,重新整理也沒有問題。

Vue 專案部署遇到的問題

使用 vue cli 生成的專案模板,執行時在url位址列多乙個 號,伺服器部署後會出現 www.com 的情況.解決方案 修改src router index.js檔案,vue router 預設 hash 模式 我們可以修改 vue router 模式為history,設定baseurl效果正常...

linux 專案部署遇到的問題

1 mysql 大小寫敏感 專案執行中去掉大小寫敏感 1 service mysql stop 2 修改my.cnf配置檔案 etc mysql my.cnf 注意修改許可權,chmod 777 my.cnf 在 mysqld 節下加入 讓mysql大小寫不敏感 lower case table n...

vue專案部署

1 更改專案下config資料夾index.js檔案 標紅處兩個位置 build 2 打包檔案,npm run build 之後會生成乙個dist資料夾,即為打包好的檔案,將檔案放在磁碟中,配置nginx監聽80埠,並指定服務名稱server name,最終可用kangqiao.kangqiao.c...