美文网首页
Ant Design Pro部署在nginx上带二级目录

Ant Design Pro部署在nginx上带二级目录

作者: 小马将过河 | 来源:发表于2019-09-29 23:00 被阅读0次

    一般我们npm build后的所有静态文件在dist里,部署在nginx的端口根目录是什么也不需要做修改的,但是偏偏有时候因为资源问题,需要在同一个端口下用二级目录来区分工程。

    我们现在流行的js project编译后都是在一个dist名称的目录下,入口文件一般是index.html,Ant design pro也没有例外。
    分两种情况看现状。

    1、 部署在nginx端口的跟目录

    yarn build命令后将dist文件夹下的目录copy到nginx能访问到的指定目录,比如本文的/opt/site/test/antd-pro
    如下:

    root@instance-ffkcm2y2:/opt/site/test/antd-pro# pwd
    /opt/site/test/antd-pro
    root@instance-ffkcm2y2:/opt/site/test/antd-pro# ls
    28.614fa0c1.async.js                     p__404.2636ef73.async.js                                   p__profile__advanced__model.ts.53b2cc97.async.js
    29.e6e2e94a.async.js                     p__account__center__model.ts.e7d2b570.async.js             p__profile__basic__model.ts.666ea347.async.js
    30.ed953c68.async.js                     p__account__settings__model.ts.18871ae5.async.js           p__user__login.42c71fa9.async.js
    31.26eb59f0.async.js                     p__dashboard__analysis__model.tsx.d7334d5e.async.js        p__user__login.69c29ea4.chunk.css
    32.858d1d30.async.js                     p__dashboard__monitor__model.ts.2295eb87.async.js          p__user__login__model.ts.d7f50bee.async.js
    asset-manifest.json                      p__dashboard__workplace__model.ts.25c12073.async.js        p__user__register.440437ac.chunk.css
    favicon.png                              p__form__advanced-form__model.ts.83317f1b.async.js         p__user__register.a695f9b3.async.js
    icons                                    p__form__basic-form__model.ts.4ec9fad5.async.js            p__user__register__model.ts.474a7318.async.js
    index.html                               p__form__step-form__model.ts.2182323a.async.js             p__user__register-result.3718897d.async.js
    layouts__BasicLayout.6bb2089d.chunk.css  p__list__basic-list__model.ts.ee583322.async.js            p__user__register-result.b1bdabda.chunk.css
    layouts__BasicLayout.d3a07379.async.js   p__list__card-list__model.ts.a5f25999.async.js             umi.0385b6b1.css
    layouts__BlankLayout.17fcb893.async.js   p__list__search__applications__model.ts.05817605.async.js  umi.1ffff763.js
    layouts__BlankLayout.6a502b55.chunk.css  p__list__search__articles__model.ts.9b3e67e3.async.js      vendors.1acb639b.chunk.css
    layouts__UserLayout.265c2404.async.js    p__list__search__projects__model.ts.b50103cf.async.js      vendors.bda2d737.async.js
    layouts__UserLayout.50d9ab78.chunk.css   p__list__table-list__model.ts.7288e948.async.js            viz.40029ece.async.js
    root@instance-ffkcm2y2:/opt/site/test/antd-pro#
    

    nginx的配置文件:

    root@instance-ffkcm2y2:/usr/local/nginx/conf/vhost# cat antd.test.5055.conf
    server
        {
            listen       5055;
        server_name  182.61.51.177;
            index index.html;
            root /opt/site/test/antd-pro/;
        location / {
            try_files $uri $uri/ /doc.html;
            }
            location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }
    
            location ~ .*\.(js|css)?$
            {
                expires      12h;
            }
    
            location ~ /\.
            {
                deny all;
            }
        access_log  /opt/nginxlog/antd-pro-access.log;
    
        }
    root@instance-ffkcm2y2:/usr/local/nginx/conf/vhost#
    

    访问看看


    image.png

    所有js和css直接在端口以下首层。

    2、部署时携带二级目录

    现在都推荐使用yarn create umi创建工程,创建的antd pro V4的demo项目。

    • 1、修改工程根目录下的config/config.js文件


      diff

      两处修改,

    export default下增加basepublicPath两个参数,分别配置一样的参数/children-path
    mainfest 下修改basePath从原来的'/'改为'/children-path/',注意结尾有斜线。

    修改玩后重新npm install,然后本地启动,本地启动没问题,再进行下一步。


    local
    • 2、打包dist
    • 3、将dist上传到目标服务器
    • 4、配置nginx
    server
        {
            listen       5055;
        server_name  182.61.51.177;
            index index.html;
            root /opt/site/test/antd-pro/;
        location / {
            try_files $uri $uri/ /doc.html;
            }
            location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }
    
            location ~ .*\.(js|css)?$
            {
                expires      12h;
            }
    
            location ~ /\.
            {
                deny all;
            }
    
        location /children-path {
                alias /opt/site/test/antd-pro2;
            }
    
        access_log  /opt/nginxlog/antd-pro-access.log;
    
        }
    

    访问看看效果

    累赘到最后发现,自己是个大傻逼,不看文档的后果很严重。

    多看文档!
    多看文档!!
    多看文档!!!
    重要的事情说三遍!!!!!!!!

    文档在哪里?不是瞎子应该就能找到:https://pro.ant.design/docs/deploy-cn
    采坑者:https://blog.csdn.net/weixin_40766882/article/details/88845184

    相关文章

      网友评论

          本文标题:Ant Design Pro部署在nginx上带二级目录

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