路徑都對,項目路由本地也能正常訪問,但是部署后加路由地址404。其實就是nginx配置的問題。知乎上一位大哥的解決辦法:vue-cli打包之后的項目在nginx的部署404,以及無法跳轉(zhuǎn)路由問題 - 知乎
問題其實就是路由沒有重定向。更簡單的配置方式就是try_files $uri $uri/ /index.html; ?#定向訪問路徑
?
以下詳細說明一下try_files和rewrite區(qū)別
try_files 指令用于在 Nginx 中處理請求時嘗試多個文件或路徑。常見的使用場景是在單頁應(yīng)用程序(SPA)中,將所有請求都指向主頁(如 index.html),然后由前端路由進行處理。
以下是一個使用 try_files 指令的示例配置:
nginx
server {
? ? listen 8082;
? ? server_name localhost;
? ? root /path/to/your/static/files; # 指定靜態(tài)文件的根目錄
? ? location / {
? ? ? ? try_files $uri $uri/ /index.html;
? ? }
}
在這個配置中:
使用 listen 指令指定要監(jiān)聽的端口。
使用 server_name 指令設(shè)置服務(wù)器的名稱(在此示例中為 localhost)。
使用 root 指令指定靜態(tài)文件的根目錄。你需要將 /path/to/your/static/files 替換為實際的靜態(tài)文件路徑。
在 location / 塊中,我們使用 try_files 指令進行請求處理。
$uri 表示原始請求的文件路徑。
$uri/ 表示原始請求文件路徑加上斜杠后的路徑(用于處理目錄請求)。
/index.html 表示如果前面的兩個路徑都不存在,則將請求轉(zhuǎn)發(fā)到 index.html 文件。 這樣,在單頁應(yīng)用程序中,所有的請求都會被轉(zhuǎn)發(fā)到 index.html,然后由前端路由進行處理。
請根據(jù)你的實際情況修改配置中的根目錄和其他相關(guān)參數(shù),以適應(yīng)你的項目需求。
rewrite 指令用于在 Nginx 中重寫 URL。它可以修改客戶端請求的 URI,或者將請求重定向到其他位置。
以下是 rewrite 指令的一些常見用法示例:
重寫指定路徑:
nginx
location /old-path {
? ? rewrite ^/old-path/(.*)$ /new-path/$1 break;
}
這個配置將把所有 /old-path/ 開頭的請求重寫到 /new-path/,并將原始路徑中的內(nèi)容保留。
重定向到新的 URL:
nginx
location /redirect-me {
? ? rewrite ^/redirect-me$ http://example.com/new-location permanent;
}
這個配置將 /redirect-me 路徑的請求重定向到 http://example.com/new-location,并使用 permanent 參數(shù)表示永久重定向。
使用正則表達式進行 URL 重寫:
nginx
location ~ ^/category/([a-z]+)$ {
? ? rewrite ^/category/([a-z]+)$ /products?category=$1 last;
}
這個配置將匹配 /category/ 后跟小寫字母的路徑,并將其重寫為 /products?category=,后面跟著匹配到的小寫字母作為參數(shù)。文章來源:http://www.zghlxwxcb.cn/news/detail-633830.html
請注意,以上只是 rewrite 指令的一些基本示例用法。實際應(yīng)用中,你可能需要根據(jù)具體需求使用更復(fù)雜的正則表達式模式或結(jié)合其他指令來進行重寫操作。具體用法取決于你的需求和配置環(huán)境。文章來源地址http://www.zghlxwxcb.cn/news/detail-633830.html
到了這里,關(guān)于vue打包之后的項目在nginx的部署404,以及無法跳轉(zhuǎn)路由問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!