vue-route+webpack部署单页路由项目,访问刷新出现404问题
问题描述:
前端同事使用Vue.js框架,利用vue-route结合webpack编写了一个单页路由项目,运维协助在服务器端配置nginx。部署完成后,访问首页没问题,从首页里打开二级页面没问题,但是所有的二级页面打开后,再次刷新,就会出现404现象!如下:


问题原因:
刷新页面时访问的资源在服务端找不到,因为vue-router设置的路径不是真实存在的路径。
如上的404现象,是因为在nginx配置的根目录/Data/app/xqsj_wx/dist下面压根没有loading这个真实资源存在,这些访问资源都是在js里渲染的。
服务端nginx的一开始配置如下(假设域名为:testwx.wangshibo.com):
[root@test-huanqiu ~]# cat /Data/app/nginx/conf/vhosts/testwx.wangshibo.com.conf 
         server {
         listen       80;
server_name  testwx.wangshibo.com;
         root  /Data/app/xqsj_wx/dist;
         index index.html;
  
         access_log  /var/log/testwx.log  main;
}
如上出现404的原因是由于在这个域名根目录/Data/app/xqsj_wx/dist下面压根就没有loading这个真实目录存在。
问题解决:
在nginx配置里添加vue-route的跳转设置(这里首页是index.html,如果是index.php就在下面对应位置替换),正确配置如下(添加下面标红内容):
[root@test-huanqiu ~]# cat /Data/app/nginx/conf/vhosts/testwx.wangshibo.com.conf 
         server {
         listen       80;
server_name  testwx.wangshibo.com;
         root  /Data/app/xqsj_wx/dist;
         index index.html;
access_log /var/log/testwx.log main;
location / {
             try_files $uri $uri/ @router;
             index  index.html;
         }
location @router {
            rewrite ^.*$ /index.html last;
        }
}
重启nginx后,问题就迎刃而解了。
vue-route+webpack部署单页路由项目,访问刷新出现404问题的更多相关文章
- Vue.js结合vue-router和webpack编写单页路由项目
		一.前提 1. 安装了node.js. 2. 安装了npm. 3. 检查是否安装成功: 打开cmd,输入node,没有报“node不是内部或外部命令”表示安装成功node.js. 打开cmd,输入np ... 
- Vue Cli 3 搭建单页应用项目刷新 404 问题 解决方案(以Apache为例)
		vue 项目 版本 Vue Cli 3.3 官方文档 https://router.vuejs.org/zh/guide/essentials/history-mode.html 因为本项目部署在 A ... 
- 解决vue单页路由跳转后scrollTop的问题
		作为vue的初级使用者,在开发过程中遇到的坑太多了.在看页面的时候发现了页面滚动的问题,当一个页面滚动了,点击页面上的路由调到下一个页面时,跳转后的页面也是滚动的,滚动条并不是在页面的顶部 在我们写路 ... 
- 单页应用后退不刷新方案(vue & react)
		引言 前进刷新,后退不刷新,是一个类似app页面的特点,要在单页web应用中做后退不刷新,却并非一件易事. 为什么麻烦 spa的渲染原理(以vue为例):url的更改触发onHashChange/pu ... 
- webpack解决单页面路由问题
		index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ... 
- ie6-8 avalon2 单页应用项目实战备忘
		坑爹的ie,作为小组leader,尼玛,小伙伴儿们不乐意做的事情,我来做好了..心累... 如果,各位同学有定制开发ie6-8版本的需求,还是尽量不要用单页应用模式了,也不要用avalon这类mvvm ... 
- Vue实现远程获取路由与页面刷新导致404错误的解决
		一.背景 先简单介绍一下现在项目情况:前后端分离,后端服务是Java写的,前端是Vue+ElementUI. 最近的一个需求是:通过后端Api去获取前端路由表,原因是每个登录角色对应的前端路由表可能是 ... 
- 解决vue路由history模式刷新后404的问题
		server { listen ;#默认端口是80,如果端口没被占用可以不用修改 server_name localhost; root E:/vue/my_project/dist;#vue项目的打 ... 
- Vue 部署单页应用,刷新页面 404/502 报错
		在 Vue 项目中,可以选择 hash或者 history.pushState() 实现路由跳转.如果在路由中使用history模式: export default new Router({ mode ... 
随机推荐
- android post带数据请求方式,传递的数据格式包括json和map
			如下: public static String httpPost(String url, String json) { try { URL u = new URL(url); HttpURLConn ... 
- Xcode常见错误汇总
			1.error: macro names must be identifiers YourProject_prefix.pch 原因: 因为你弄脏了预处理器宏,在它处于<Multiple Val ... 
- unity安卓和IOS读写目录
			StreamingAssets文件夹下的只读不可写路径: 安卓读:filePath = Application.streamingAssetsPath + "/文件名.格式名"; ... 
- android开发练习:天气应用
			来源:网易云课堂GeekBand第七次作业 作业要求: 做一个天气应用 接口参考: http://apistore.baidu.com/apiworks/servicedetail/880.html, ... 
- mysql 数据库乱码问题
			mysql 数据库乱码问题,按如下顺序检查,一步一步排除出错位置. 最好全部编码都使用UTF8编码. 网页页面编码方式使用UTF8: <meta http-equiv="Content ... 
- YARN中自己总结的几个关键点
			以前在Hadoop 1.0中JobTracker主要完成两项功能:资源的管理和作业控制.在集群规模过大的场景下,JobTracker 存在以下不足: 1)JobTracker 单点故障. 2)JobT ... 
- HTML基础(四)——设置超链接的样式示例
			***设置超链接的样式示例 a:link 超链接被点前状态 a:visited 超链接点击后状态 a:hover 悬停在超链接时 a:active 点击超链接时 在定义这些状态时,有一个顺序l v ... 
- MySQL 调优基础(五) Linux网络
			1. TCP/IP模型 我们一般知道OSI的网络参考模型是分为7层:“应表会传网数物”——应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.而实际的Linux网络层协议是参照了OSI标准,但 ... 
- Js 关于console 在IE 下的兼容问题
			程序员在开发代码的过程中,使用console作为调试代码过程的一种手段. 发布到测试生产环境,发现IE8 出现加载错误.使用开发者工具调试,发现可以绕过问题. 通过网络搜索和在项目中进行修正. 以下办 ... 
- 时间同步出现ntpdate[1788]: the NTP socket is in use, exiting
			问题: [root@service ~]# ntpdate ntp.api.bz 17 Jun 19:22:23 ntpdate[2701]: the NTP socket is in use, ex ... 
