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

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

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

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

 

 

遇到的问题:web

1. 直接去访问http://www.xxx.com/ibms/,会发现网页是白屏的,什么都没有,这就比较奇怪了,实际上是由于资源加载的路径有问题!express

解决方法:apache

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

assetsPublicPath: '/ibms/'

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

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

接下来再从新npm run build打包,而后丢到服务器上ibms文件夹下,这时页面就能够正常访问了。ui

 

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

解决方法:

把全部的请求所有转发到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服务器哦

 

 

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

相关文章
相关标签/搜索