前端开发手札fis篇——关于部署目录的问题

用了差很少一年多的fis,感受他比其余构建工具更容易上手,扩展插件也比较多。可是诟病也是有的,好比接下来要说的部署问题,虽然fis3自己也有比较好的方案解决(设置url参数),可是对于部署不是给内部同事对接而是给客户部署是遇到很多问题,今天恰好有时间把这个问题解决啦,顺便也纪录下来。bash

部署问题

因为fis3部署生成的文件路径是网站目录根开始的(如:/assets/img/bg.png),致使网站发布必须是目录根才能有效加载。实际状况可能使用http://www.uxfeel.com/lxyz/这样的目录下发布,怎样才能更好地发布呢?服务器

解决方法1

修改fis设置,添加url参数于静态资源的构建规则中,例如:工具

let asset_dir = '/assets',
        url = '/lxyz/'+url;
    
    fis.match('**',{
        release: asset_dir + '/$0',
        url: url + '$&' //改变引用地址
    })

使用url参数fis就会很好帮你把访问路径替换好,可是并不灵活。测试

假如你的项目交付给客户,而后他们先部署到测试服务器测试,而后再部署到其余服务器发布呢?
这是客户须要找你进行代码的发布,固然你能够给开发包让他们弄,可是也有不讲理的时候。这是怎样处理更方便呢?网站

解决方法2

能够使用url替换脚本repath.shurl

# $ repath.sh [group] [path]
$ repath.sh lxyz ../release/lxyz-publish

repath.sh脚本,会搜着目录下的全部文件并在/assets/"/assets/('/assets/开头的路径前面添加[group]参数。插件

#!/bin/bash
    
    group=$1
    path=$2
    sed -i "s@(/assets/@(/$group/assets/@g" `grep "/assets/" -rl $path`
    sed -i "s@('/assets/@('/$group/assets/@g" `grep "/assets/" -rl $path`
    sed -i "s@\"/assets/@\"/$group/assets/@g" `grep "/assets/" -rl $path`

虽然办法可能蠢一点,可是很实用?code

相关文章
相关标签/搜索