vue单页应用在nginx刷新路由后会找不到文件404,原因是vue-router已经接管了路由,在静态网站下nginx无法找到对应的路由信息。其路口文件始终是index.html。
修改配置:
nginx
server {
listen 80;
listen [::]:80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
# 这一行会尝试路由到index.html
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}修改dockerfile
dockerfile
FROM nginx:mainline-alpine3.18-slim
COPY ./dist /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/conf.d/default.conf参考文档:
