vue框架下部署上线后刷新报404问题的解决方案(推荐)


Posted in Javascript onApril 03, 2019
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteRule ^index\.html$ - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.html [L]
</IfModule>

nginx配置

location / {
 try_files $uri $uri/ /index.html;
}

vue history模式下nginx配置

服务端nginx的一开始配置如下(假设域名为:xx.xxx.com): [***** ~]# cat /Data/app/nginx/conf/vhosts/xx.xxx.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;

}

修改如下:

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

原生 Node.js

const http = require('http')
const fs = require('fs')
const httpPort = 80
http.createServer((req, res) => {
 fs.readFile('index.htm', 'utf-8', (err, content) => {
  if (err) {
   console.log('We cannot open "index.htm" file.')
  }
  res.writeHead(200, {
   'Content-Type': 'text/html; charset=utf-8'
  })
  res.end(content)
 })
}).listen(httpPort, () => {
 console.log('Server listening on: http://localhost:%s', httpPort)
})

基于 Node.js 的 Express

对于 Node.js/Express,请考虑使用 connect-history-api-fallback 中间件

Internet Information Services (IIS)

安装 IIS UrlRewrite

在你的网站根目录中创建一个 web.config 文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <system.webServer>
  <rewrite>
   <rules>
    <rule name="Handle History Mode and custom 404/500" stopProcessing="true">
     <match url="(.*)" />
     <conditions logicalGrouping="MatchAll">
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
     </conditions>
     <action type="Rewrite" url="/" />
    </rule>
   </rules>
  </rewrite>
 </system.webServer>
</configuration>

Caddy

rewrite {
  regexp .*
  to {path} /
}

Firebase 主机

在你的 firebase.json 中加入:

{
 "hosting": {
  "public": "dist",
  "rewrites": [
   {
    "source": "**",
    "destination": "/index.html"
   }
  ]
 }
}

最后

给个警告,因为这么做以后,你的服务器就不再返回 404 错误页面,因为对于所有路径都会返回 index.html 文件。为了避免这种情况,你应该在 Vue 应用里面覆盖所有的路由情况,然后在给出一个 404 页面。

const router = new VueRouter({
 mode: 'history',
 routes: [
  { path: '*', component: NotFoundComponent }
 ]
})

总结

以上所述是小编给大家介绍的vue框架下部署上线后刷新报404问题的解决方案(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js模拟类继承小例子
Jul 17 Javascript
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
Mar 30 Javascript
jquery struts 验证唯一标识(公用方法)
Mar 27 Javascript
javascript实用小函数使用介绍
Nov 11 Javascript
JS实现点击事件统计的简单实例
Jul 10 Javascript
终于实现了!精彩的jquery弹幕效果
Jul 18 Javascript
浅谈javascript中的Function和Arguments
Aug 30 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
Dec 24 Javascript
js实现九宫格拼图小游戏
Feb 13 Javascript
js实现图片上传预览原理分析
Jul 13 Javascript
vue-cli 构建骨架屏的方法示例
Nov 08 Javascript
浅谈javascript事件环微任务和宏任务队列原理
Sep 12 Javascript
JavaScript变速动画函数封装添加任意多个属性
Apr 03 #Javascript
JS中注入eval, Function等系统函数截获动态代码
Apr 03 #Javascript
性能优化篇之Webpack构建速度优化的建议
Apr 03 #Javascript
elementUI多选框反选的实现代码
Apr 03 #Javascript
vue生命周期的探索
Apr 03 #Javascript
用原生 JS 实现 innerHTML 功能实例详解
Apr 03 #Javascript
详释JavaScript执行环境与执行栈
Apr 02 #Javascript
You might like
php懒人函数 自动添加数据
2011/06/28 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
php计算税后工资的方法
2015/07/28 PHP
PHP session 会话处理函数
2016/06/06 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
Node.js搭建小程序后台服务
2018/01/03 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
JS实现轮播图效果
2020/01/11 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
python数组过滤实现方法
2015/07/27 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
Python如何访问字符串中的值
2020/02/09 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
科室工作的个人自我评价
2013/10/30 职场文书
十月份红领巾广播稿
2014/01/22 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
买房协议书
2014/04/11 职场文书
安娜卡列尼娜观后感
2015/06/11 职场文书
2015双创工作总结
2015/07/24 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书