zoukankan      html  css  js  c++  java
  • vue打包之部署在非根路径下的三两事

    首先,感叹一下,2019年已经过去一半,想想自己做了些什么,好像也没做什么。

    今天试着配一个nginx,以前的nginx都是指向的/根路径,今天的nginx指向的非/根路径,遇到许多问题的,总结总结。

    老规矩,先来点示例代码:

    nginx:

    server {
            listen       80;
            server_name domain.com;
            location /path {
                alias "/your-project-file";
                index index.html;
                try_files $uri $uri/ /path/index.html;
            }
    }

    location /path :表示项目访问地址为http://domain.com/path
    alias /your-project-file :指向你的项目打包后放在服务器的位置

    try_files /path/index.html :这里为router官方文档推荐的写法,需要把/path加上

    然后就是vue代码,这里用到的是vue-cli3x的代码,上关键的:

    首先是vue.config.js下的publicPath: process.env.NODE_ENV === 'production' ? '/path': '/',为什么需要这样配?具体参见cli文档

    然后是路由需要配置base: process.env.NODE_ENV === 'production' ? '/path': '/',这个也需要看router文档

    通过这两个地方的配置,访问http://domain.com/path就可以访问到你打包后的项目了,但是!!!!

    项目中的图片我是放在public文件夹下的,打包后没有正确的将public文件夹给加上/path,导致所有图片都404,很烦

    这时网上出现了两个声音,第一,将图片放到src文件夹里面的assets。我试过,没搞出来,放弃了。第二,在图片前加上publicPath,参见文档

    是的,包括所有以静态资源方式引入到项目的框架/插件,都需要拼上<%= BASE_URL %>,处理完之后,再次打包,解决了。

    啊,时间好快,文章好水...

  • 相关阅读:
    jQuery中的事件
    Ajax跨域
    javascript的时间委托
    大型数据库优化技巧
    mysql数据库忘记密码时如何修改
    DAY69-nosql
    DAY68-redis
    DAY67-Memcached
    DAY65-apache的安装
    DAY63-centos介绍
  • 原文地址:https://www.cnblogs.com/xuejiangjun/p/11157016.html
Copyright © 2011-2022 走看看