Vue项目打包部署到apache服务器

Posted ykcoder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue项目打包部署到apache服务器相关的知识,希望对你有一定的参考价值。

vue项目在开发环境下,让项目运行起来,是通过npm run dev命令,原理是在本地搭建了一个express服务器。

但是在服务器上就不是这样的,必须要通npm run build命令来对整个项目进行打包,打包后会在项目目录下生成一个dist文件夹,内容如下:

技术图片

然后就是把这些文件丢到服务器上的某个文件夹下,我这里的文件夹名字是ibms

技术图片

 

 

遇到的问题:

1. 直接去访问,会发现网页是白屏的,什么都没有,这就比较奇怪了,其实是因为资源加载的路径有问题!

解决方法:

config中的index.jsbuild下修改webpack配置:

assetsPublicPath: ‘/ibms/‘

 在router中的index.js配置中加上:

export default new Router(
  mode: ‘history‘,
  scrollBehavior: () => ( y: 0 ),
  base: ‘/ibms/‘, // 加上这一行
  routes: constantRouterMap
)

接下来再重新npm run build打包,然后丢到服务器上ibms文件夹下,这时页面就可以正常访问了。

 

2. 在当前页面刷新或者用url栏访问某个子页面,结果发现网页404了,这是因为vue路由的mode是history模式。

解决方法:

把所有的请求全部转发到http://www.xxx.com/ibms/index.html上就可以了

我这里用的是apache做的web服务器,在ibms目录下新建.htaccess文件(跟index.html同级),编辑代码。

技术图片

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /ibms/
    RewriteRule ^index\\.html$ - [L]
    RewriteCond %REQUEST_FILENAME !-f
    RewriteCond %REQUEST_FILENAME !-d
    RewriteRule . /ibms/index.html [L]
</IfModule>

这个配置的作用就是把所有服务器上不存在请求全部转发到index.html上去。(PS:记得要重启apache服务器哦

 

 

如有错误,请多指教,谢谢!

以上是关于Vue项目打包部署到apache服务器的主要内容,如果未能解决你的问题,请参考以下文章

前端vue与后端Thinkphp在服务器的部署

vue项目打包后,乱码。部署到本地服务器,不乱码,部署到虚拟机linux服务器乱码。如何解决?

在服务器中使用Nginx部署打包的Vue项目

Vue打包并自动部署到指定服务器

vue cli3项目打包部署到tomcat服务器运行

将SpringBoot项目及vue项目分别打包部署到阿里云服务器