vue nginx部署 配置 解决href = ‘/login路由‘ 跳转404问题

示例场景

html 复制代码
 <a :href=this.repDownloadUrl>下载平台</a>
 <a href="/join" target="_blank">入驻平台</a>
 <a href="/index" target="_blank" class="btn_login" style="color:#fff">

nginx部署前后端项目,当a标签跳转指定路由页面时,前端访问跳转界面报错404,或者location.href = '/login' 跳转报错404

解决方法

cd 至nginx文件中的conf文件
重点:在nginx.conf配置中加入
try_files $uri $uri/ /index.html;

详情nginx配置如下

powershell 复制代码
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            # 打包vue的包路径地址
            root   /file/dist;
            index  index.html index.htm;
            # 防止路由跳转的404问题
            # 解决跳转页面 href = '/路由地址' 跳转404问题
            # 也可解决location.href = '/login' 跳转404问题
            try_files $uri $uri/ /index.html;
        }

       # 接口请求转发
       location ^~ /prod-api/ {
          proxy_set_header Host $http_host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header REMOTE-HOST $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://localhost:8090/;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

配置后重启nginx,访问跳转路径无报错404

相关推荐
金梦人生1 分钟前
🔥Knife4j vs Swagger:Node.js 开发者的API文档革命!
前端·node.js
Itai1 分钟前
自定义 markdown 解析规则并渲染 Vue 组件
vue.js
东华帝君1 分钟前
react 虚拟滚动列表的实现 —— 固定高度
前端
Larcher3 分钟前
n8n 入门笔记:用零代码工作流自动化重塑效率边界
前端·openai
林希_Rachel_傻希希3 分钟前
正则表达式捕获组与全局匹配
前端·javascript
前端赵哈哈3 分钟前
那个让我熬夜三天的 “小数点”:一次 URL 踩坑记
前端·chrome·http
karshey9 分钟前
【vue】NoticeBar:滚动通知栏组件手动实现(内容、速度、循环间隔可配置)
前端·javascript·vue.js
醉方休28 分钟前
React 官方推荐使用 Vite
前端·react.js·前端框架
Dontla33 分钟前
React惰性初始化函数(Lazy Initializer)(首次渲染时执行一次,只执行一次,应对昂贵初始化逻辑)(传入一个函数、传入函数)
前端·javascript·react.js
lypzcgf41 分钟前
FastbuildAI新建套餐-前端代码分析
前端·智能体平台·ai应用平台·agent平台·fastbuildai