当前位置:   article > 正文

Vue项目在上传宝塔后 除首页外页面刷新出现404_宝塔 apache vue刷新404

宝塔 apache vue刷新404

控制台打开网络

可以看到首次进来的时候是正常的

刷新一次后

请求网址发生了变化,并且出现404

这是因为在项目打包后,dist文件中只存在一个index网页,当我们从网址进去后通过路由跳转到达其他页面,关键在这里,当我们在其他页面执行刷新操作,nginx location 是没有相关配置的,所以就会出现 404 的情况

解决方法:
一、改变服务器配置

Apache

  1. <IfModule mod_negotiation.c>
  2. Options -MultiViews
  3. </IfModule>
  4. <IfModule mod_rewrite.c>
  5. RewriteEngine On
  6. RewriteBase /
  7. RewriteRule ^index\.html$ - [L]
  8. RewriteCond %{REQUEST_FILENAME} !-f
  9. RewriteCond %{REQUEST_FILENAME} !-d
  10. RewriteRule . /index.html [L]
  11. </IfModule>

nginx

在域名下面添加

  1. location / {
  2. try_files $uri $uri/ /index.html;
  3. }
二、改变路由模式

在index.js文件中可以对路由模式进行修改,改为WebHashHistory后正常

  1. import { createRouter, createWebHashHistory } from 'vue-router'
  2. const router = createRouter({
  3. history: createWebHashHistory(),
  4. routes: [
  5. //...
  6. ],
  7. })

这是因为它在内部传递的实际 URL 之前使用了一个哈希字符(#)。由于这部分 URL 从未被发送到服务器,所以它不需要在服务器层面上进行任何特殊处理。

希望能为你带来帮助

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/985858
推荐阅读
相关标签
  

闽ICP备14008679号