vue2.x 3.x histroy模式 打包后 nginx 访问 404问题解决

15 篇文章 0 订阅
本文介绍了在Vue.js应用中,从2.0到3.0版本切换路由模式为`history`模式时的配置步骤,并展示了如何配置Nginx以避免404错误。主要涉及Vue Router的`mode: 'history'`配置和Nginx的`try_files`指令来正确处理单页应用的路由。
摘要由CSDN通过智能技术生成

我这边是由于 histroy模式导致的
官方文档

https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E5%90%8E%E7%AB%AF%E9%85%8D%E7%BD%AE%E4%BE%8B%E5%AD%90
#2.0代码
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import pay from '@/pages/pay'
import order from '@/pages/order'
import heiheihei from '@/pages/heiheihei'

Vue.use(Router)

export default new Router({
  mode: 'history',
  routes: [
    {
      path: '/order',
      name: 'order',
      component: order
    },
    {
      path: '/pay',
      name: 'pay',
      component: pay
    },
    {
      path: '/hello',
      name: 'hello',
      component: HelloWorld
    },
    {
      path: '/',
      name: 'heiheihei',
      component: heiheihei
    },
  ]
})

3.0代码
import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [
    {
        path: "/",
        redirect: "index"
    },
    // {
    //     path: "/login",
    //     name: "login",
    //     component: resolve => require(["../views/login/Login.vue"], resolve)
    // },
    // {
    //     path: "/index",
    //     name: "index",
    //     component: resolve => require(["../views/index.vue"], resolve)
    // },
    {
        path: '/order',
        name: 'order',
        component: resolve => require(["../views/order.vue"], resolve)
      },
      {
        path: '/pay',
        name: 'pay',
        component: resolve => require(["../views/pay.vue"], resolve)
      },
      {
        path: '/index',
        name: 'index',
        component: resolve => require(["../views/heiheihei.vue"], resolve)
      },
    // {
    //     path: "/index",
    //     name: "index",
    //     component: resolve => require(["../views/index/Index.vue"], resolve),
    //     children: [{
    //             path: "/index/RoleSet", //角色设置
    //             name: "/RoleSet",
    //             component: resolve =>
    //                 require(["../views/authority/RoleSet.vue"], resolve)
    //         },
    //         {
    //             path: "/index/UserSet", //用户管理
    //             name: "/UserSet",
    //             component: resolve =>
    //                 require(["../views/authority/UserList.vue"], resolve)
    //         },
    //         {
    //             path: "/index/Map", //大屏展示
    //             name: "/Map",
    //             component: resolve =>
    //                 require(["../views/bigScreen/Map.vue"], resolve)
    //         },
    //         {
    //             path: "/index/Empty", //大屏展示
    //             name: "/Empty",
    //             component: resolve =>
    //                 require(["../views/bigScreen/Empty.vue"], resolve)
    //         }

    //     ]
    // }
];

const router = new VueRouter({
    mode: 'history',
    base: '/',
    routes
})

export default router

nginx 目录

D:\java\nginx-1.12.2\conf

配置文件 (直接丢给你们。。记得root 后面指向dist目录)

#默认的
 location / {
            root   html;
            index  index.html index.htm;
        }

#我的
worker_processes  1;

events {
    worker_connections  1024;
}


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


    sendfile        on;

    keepalive_timeout  65;



    server {
        listen       8080;
        server_name  localhost;

        location / {
            root   C:\Users\32783\Downloads\Compressed\aliyunhuakuai-vue\dist;
            index  index.html index.htm;
            #vue 路由 问题404 加下面一行代码 
            try_files $uri $uri/ /index.html;

        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

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


    # 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;
    #    }
    #}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值