我目前正在從事的項目已經看到了來自不同背景的各種編碼器。爲了最大限度地減少css和js文件,我成功地編寫了一個乾淨的Capistrano配方,我問自己如何識別在我們的css代碼庫中傳播的各種url模式,並在它們上線之前一次性重寫它們。 我正在尋找的模式是在生產啓動前重寫css文件中的URL的最佳方式?
url('../../images/
url(../images/
url("../../../images/
url(images/
所以基本上,這裏是一個輸入端例如:
.test{background:url('/images/test.jpg') no-repeat top left}.pouet{background:url("../../images/bg.png")}
注意,在某些情況下,我們的報價,在別人不... 什麼我試圖獲得
.test{background:url('http://www.cdnImages.com/images/test.jpg') no-repeat top left}.pouet{background:url("http://www.cdnImages.com/images/bg.png")}
所有這些都必須替換爲我的cdn網址。最令人費解的是,如何以不允許任何錯誤的方式這樣做。
我想出了一個適合我的需要正則表達式:rubular permalink
我一直在尋找的sed命令,如下
sed '/url([^\/](.*?)images/http:\/\/www.cdnImages.com' myFile.css
使用它,但是這似乎並沒有做工作。
我目前的研究使我這個
find #{current_release}/public/static/css/ -name '*.css' | xargs sed -i '[email protected]\([^\/](.*?)images|static\/@#{images_cdn}@g'
和,而正則表達式完全符合需要(檢查here to see the catched output,似乎有什麼不對勁的地方。
任何想法?非常感謝。
更好地發佈之前和之後的例子和你迄今爲止嘗試;-)。祝你好運。 – shellter
並不多,我一直在使用sed,如下所示:find -type f -name'* .css'| sed -I文件-i「'」s | url(\([^)] * \)| url(#{cdn_url} \ 1 | g「文件 – pixelboy
mmmm ...也試過sed'/ url \([^ \ /(。*?)images/cdnUrl.com'myFile.css ... unsuccessfuly – pixelboy