簡體   English   中英

使用php構建和重建CSS數據uri

[英]Build and Rebuild CSS data uris with php

整個數據URI廢話確實會很快變老,但是在那之前,我至少要在bandwagaon上跳一圈。

因此,我有一些要更新的CSS文件,以使用數據URI而不是遠程位置。 我當時想我可以使用一些PHP和regex進行編程,盡管它不像我之前看到的數據URI重定向想法那么聰明和透明,但是它將提供一個按鈕“ rebuild”選項來修復將來的問題文件或更新。 但是后來我陷入了精神障礙。 這里是想法:

  1. Fix-URI腳本遍歷存儲在適當位置的所有css文件,並摸索為url(".*") (稍后添加一些模糊性)

  2. 腳本確認文件是本地文件並且存在並將內容嚼入數據uri

  3. 腳本用新數據uri替換找到的url。

  4. 完成后,腳本將保存更新的文件等。

但是,當然,在我看來這只能工作一次。 之后,該URL將已經是數據uri。 我可以添加“ data:”的檢查,但是對我來說真正的難題是:我怎么知道數據uri是最新的? 如果我將“ icon-xyz.png”替換為有光澤的更好的文件,不僅需要每次檢查每個數據uri,而且還必須以某種方式知道要與之比較的原始文件名,這不是標准屬性截至目前,數據uri的一部分。

我不想要的是使用php變量的動態CSS文件。 我也想使解決方案盡可能抽象,即使正則表達式馬不在谷倉內。

一個過去的想法是簡單地刪除所有已轉換的圖像,或者至少將它們移到“已轉換”目錄中。 這樣,可以立即發現仍使用普通網址的更新版本或新圖像。 然后,我可以對舊的已轉換版本的圖像進行數據魔術轉換,使用grep進行轉換,然后在找到的位置替換為新文件。

但是,我擔心我正在使它變得比我所需要的更加復雜,並且我缺少一些明顯且方便的東西。

快速更新

使其盡可能抽象的方法包括避免或至少拒絕解決方案,例如css注釋以反映文件名或在新屬性上方注釋掉的屬性等。

我的解決方案,不要覆蓋但要復制

css.css->編譯/css.css

更改時,將css.css重新編譯為Compiled / css.css

我在自己的網站上執行了以下操作:compiled / v {1-9 +},css1,css2.css

Web服務器會自動處理生成,如果css文件不存在,它將調用generatecss.php來編譯和合並css文件。

版本號確保沒有緩存,第二個和第三個結合在一起,並從原始css1.css和css2.css等創建並優化了css文件。

但是請記住,css文件被阻止,使用大的css文件並不總是一個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM