经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » HTML5 » 查看文章
vue history模式下,部署到服务器 出现空白页情况
来源:cnblogs  作者:Lemoncool  时间:2019/8/2 8:48:40  对本文有异议
  •  问题描述:
   vue搭建的项目,路由一直用的hash模式,所以url中都会带有一个“#”号。现在想要去掉“#”,于是使用history模式 { mode: 'history' },代码如下:
  1. import Vue from 'vue';
  2. import App from './App';
  3. import routers from './router';
  4. import VueRouter from 'vue-router';
  5. Vue.use(VueRouter);
  6. const router = new VueRouter({
  7. mode: 'history',
  8. routes: routers
  9. });
  10. /* eslint-disable no-new */
  11. new Vue({
  12. el: '#app',
  13. router,
  14. components: {App},
  15. template: '<App/>'
  16. });
 
  •  mode: 'history',使用这个模式,在开发阶段一切都是正常的,访问地址是localhost:8888,以上没什么错误,一切都好用。url里也没有#了。可是打包之后,访问项目会发现页面一片空白的情况。不是404,不报错,只是空白!!
  • 解决办法如下:
  1. 很多项目都放在了服务器根目录下面,访问后的url就是:http://123.com,这是一种解决办法
  2. 假如我的项目没有放在服务器根目录下,放在了服务器的nice/app下,那么打开地址是:http://123.com/nice/app
    那么这里问题就来了,我们配的路由中并没有nice/app,所以无法找到路径中的组件,所以也就无法渲染了。这就是导致空白的原因!
 
   此时只需要修改router中的index.js,给路由中加一个base的属性,值为 ‘/nice/app/’就可以了。代码:
  1. const router = new VueRouter({
  2. mode: 'history',
  3. base: '/nice/app/',
  4. routes: routers
  5. });

 

  记住这个base,base值两边一定要有"/",不要写成“nice/app”、“/nice/app”或者“nice/app/”。
 
     其次,这个文件夹是服务器放项目的文件夹,不是你本地项目的文件夹位置!!
 

原文链接:http://www.cnblogs.com/lemoncool/p/11271925.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号