dockerfile解决nignx镜像部署vue刷新404

这篇博客介绍了在Docker环境下,如何通过配置Nginx解决Vue应用刷新页面出现404错误的问题。提供了三种不同的Nginx配置方案,包括设置try_files和rewrite规则来确保在history模式下正确重定向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

由于安全问题,客户现场的同事部署的Docker环境,nginx部署vue刷新404,这个问题在nginx 修改配置文件很简单的问题,由于本人也没有真正的接触过docker,我们这个边提出让他修改nginx的config 配置,对方提出修改docker 去解决这个问题。
一下是解决方案,我也是刚接触docker文件,先模仿学习,等以后经验多一点在分享个人想法。
https://blog.youkuaiyun.com/qq1304530241/article/details/123820143

FROM nginx:latest
MAINTAINER iron.guo
VOLUME /tmp
ENV LANG en_US.UTF-8
RUN echo "server {  \
                    listen       80; \
                    #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 \
                    location / { \
                        root   /var/www/html/; \
                        index  index.html index.htm; \
                        if (!-e \$request_filename) { \
                            rewrite ^(.*)\$ /index.html?s=\$1 last; \
                            break; \
                        } \
                    } \
                    access_log  /var/log/nginx/access.log ; \
                } " > /etc/nginx/conf.d/default.conf \
    &&  mkdir  -p  /var/www \
    &&  mkdir -p /var/www/html

ADD ./ /var/www/html/
EXPOSE 80

1.nginx解决刷新404


worker_processes auto;
events {
	worker_connections 1024;
}
http {
	include             mime.types;
	default_type        application/octet-stream;
	sendfile            on;
	keepalive_timeout 65;
	client_max_body_size 20m;
	server {
		listen       80;
		server_name  localhost;
		location / {
			root /usr/share/nginx/html; 		#配置Vue项目根路径
			index index.html index.html; 		#配置首页
			try_files $uri $uri/ /index.html; 	#防止刷新报404
		}
		error_page 500 502 503 504 /50x.html;
			location = /50x.html {
			root html;
		}
	}
}

2.nginx解决刷新404


server
{
    listen 80;
    server_name testwx.wangshibo.com;
 
    #vue-router配置
    location / {
        try_files $uri $uri/ @router;
        index index.html;
    }
    location @router {
        rewrite ^.*$ /index.html last;
    }

3.nginx解决刷新404

server {  
                    listen       80; 
                    #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 
                    location / { 
                        root   /var/www/html/; 
                        index  index.html index.htm; 
                       	if (!-e $request_filename) {
          					rewrite ^(.*)$ /index.html?s=$1 last;
          					break;
      					}
                    } 
                    access_log  /var/log/nginx/access.log ; 
                }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值