前端開發手札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

相關文章
相關標籤/搜索