美文网首页
VueJS 项目发布部署到服务器 修改目录结构

VueJS 项目发布部署到服务器 修改目录结构

作者: 李颖轩_LiYingxuan | 来源:发表于2017-12-15 16:45 被阅读50次

    在真实部署环境中,很难将dist生成的内容直接部署到服务器根目录。直接按默认配置build的项目无法在子文件夹中正常运行,需要进行如下配置:

    例如:
    将项目部署到服务器根目录下的demo文件夹下:

    修改Router index.js

    Path:./src/router/index.js

    Vue.use(Router)
    export default new Router({
      mode: 'history', // 需要增加的地方
      base: '/demo/', // 需要增加的地方
      routes: [
        {
          path: '/',
          name: 'HomePage',
    

    修改config index.js

    Path:./config/index.js

    module.exports = {
      build: {
        env: require('./prod.env'),
        index: path.resolve(__dirname, '../dist/index.html'),
        assetsRoot: path.resolve(__dirname, '../dist'),
        assetsSubDirectory: 'static',
        assetsPublicPath: '/demo/', // 需要修改的地方
        productionSourceMap: true,
    

    此时,可以将build打包内容全部放入服务器根目录下的demo文件中,并正常访问了。

    但是,现在刷新会有问题,需要开启服务器的重写功能。
    VueJS官方指导文档

    Apache服务器例子:

    修改配置文件

    # vim /etc/httpd/conf/httpd.conf
    
    1. 搜索<Directory />,修改成:
    <Directory />    
    Options FollowSymLinks    
    AllowOverride None    
    Order deny,allow    
    Allow from all    
    Satisfy all
    </Directory>
    
    2. 搜索<Directory "/var/www/html,修改其中一行:
    AllowOverride all
    

    在最后一行插入:

    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_URL} ^/demo
      RewriteRule . /demo/index.html [L]
    </IfModule>
    
    3. 重启Apache服务
    # systemctl restart httpd
    或:
    # service httpd restart
    

    The end.

    相关文章

      网友评论

          本文标题:VueJS 项目发布部署到服务器 修改目录结构

          本文链接:https://www.haomeiwen.com/subject/vlydwxtx.html