Skip to content

解决单页应用在Nginx部署下404问题

分类:

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

参考文档:

  1. How to Use the NGINX Docker Official Image | Docker

实践、认识、再实践、再认识,这种形式,循环往复以至无穷,而实践和认识之每一循环的内容,都比较地进到了高一级的程度。