如何解決vuejs應用在nginx非根目錄下部署時訪問404的問題

當我們使用Vue.js開發應用時,我們會發現將應用部署在nginx的非根目錄下時,訪問該應用時會出現404錯誤。這是因為Vue在刷新頁面或者直接訪問非根目錄的路由時,會認為服務器上並沒有相應的資源。因此,本文將從多個方面詳細闡述如何解決該問題。

一、更改Vue Router的base配置

默認情況下,Vue Router會將base配置設置為’/’,所以當我們通過非根目錄進行部署時,需要將base手動更改為部署的子目錄。在router/index.js文件中,我們可以添加如下代碼:


const router = new VueRouter({
  mode: 'history',
  base: '/your_sub_directory/', //此處更改為你的子目錄名稱
  routes
})

其中,base配置項需要設置為你應用的非根目錄部分。並且請確保在以history模式編寫Vue Router時,也要將nginx的rewrite配置相應地配置為所有的請求都被重定向到index.html。

二、更改nginx的配置文件

由於nginx默認部署在根目錄下,當我們將應用部署在非根目錄下時,需要更改nginx的配置文件。我們需要添加以下代碼到設置中:


location /your_sub_directory/ {
  alias /usr/share/nginx/html/sub_directory/;
  try_files $uri $uri/ /your_sub_directory/index.html;
}

其中,location部分需要設置為你的應用的子目錄名稱,alias需要設置為你的應用的實際路徑,try_files需要添加你的應用的根目錄的index.html。

三、使用Vue Cli3的publicPath配置

如果你使用的是Vue Cli3來創建你的Vue.js應用,並且需要部署在非根目錄下,則可以通過publicPath配置項來更改應用的部署路徑。在vue.config.js文件中,添加如下代碼:


module.exports = {
  publicPath: '/your_sub_directory/'
}

然後,重新打包你的應用並部署即可。

四、總結

通過以上的方法,我們可以解決Vue.js應用在nginx非根目錄下部署時出現404的問題。需要注意的是,不同的情況下,需要選擇相應的解決方案。如果你是使用Vue Cli3來創建你的Vue.js應用,則可以使用publicPath配置。如果你是手動部署Vue.js應用,則需要更改Vue Router的base配置或者更改nginx的配置文件。希望本文能夠對你有所幫助。

原創文章,作者:DPVRX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/375196.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
DPVRX的頭像DPVRX
上一篇 2025-04-29 12:49
下一篇 2025-04-29 12:49

相關推薦

  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智能等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • 如何解決WPS保存提示會導致宏不可用的問題

    如果您使用過WPS,可能會碰到在保存的時候提示「文件中含有宏,保存將導致宏不可用」的問題。這個問題是因為WPS在默認情況下不允許保存帶有宏的文件,為了解決這個問題,本篇文章將從多個…

    編程 2025-04-29
  • 如何解決dlib庫安裝失敗

    如果您遇到了dlib庫安裝失敗的問題,在此文章中,我們將從多個方面對這個問題進行詳細的闡述,並給出解決方法。 一、檢查環境安裝情況 1、首先,您需要確認是否安裝了C++編譯器和Py…

    編程 2025-04-29
  • 如何解決web瀏覽器雙擊事件時差

    本文將從以下幾個方面對web瀏覽器雙擊事件時差進行詳細闡述,並提供解決方法。 一、雙擊事件延時設置 1、問題描述:在web瀏覽器中,雙擊事件默認會延時一定的時間才能觸發該事件,這個…

    編程 2025-04-29
  • Java Thread.start() 執行幾次的相關問題

    Java多線程編程作為Java開發中的重要內容,自然會有很多相關問題。在本篇文章中,我們將以Java Thread.start() 執行幾次為中心,為您介紹這方面的問題及其解決方案…

    編程 2025-04-29
  • Python爬蟲亂碼問題

    在網絡爬蟲中,經常會遇到中文亂碼問題。雖然Python自帶了編碼轉換功能,但有時候會出現一些比較奇怪的情況。本文章將從多個方面對Python爬蟲亂碼問題進行詳細的闡述,並給出對應的…

    編程 2025-04-29
  • NodeJS 建立TCP連接出現粘包問題

    在TCP/IP協議中,由於TCP是面向位元組流的協議,發送方把需要傳輸的數據流按照MSS(Maximum Segment Size,最大報文段長度)來分割成若干個TCP分節,在接收端…

    編程 2025-04-29
  • 如何解決egalaxtouch設備未找到的問題

    egalaxtouch設備未找到問題通常出現在Windows或Linux操作系統上。如果你遇到了這個問題,不要慌張,下面我們從多個方面進行詳細闡述解決方案。 一、檢查硬件連接 首先…

    編程 2025-04-29
  • Python折扣問題解決方案

    Python的折扣問題是在計算購物車價值時常見的問題。在計算時,需要將原價和折扣價相加以得出最終的價值。本文將從多個方面介紹Python的折扣問題,並提供相應的解決方案。 一、Py…

    編程 2025-04-28
  • 如何解決當前包下package引入失敗python的問題

    當前包下package引入失敗python的問題是在Python編程過程中常見的錯誤之一。 它表示Python解釋器無法在導入程序包時找到指定的Python模塊。 正確地說,Pyt…

    編程 2025-04-28

發表回復

登錄後才能評論