2014-10-17 52 views
1

我使用Mindscape Workbench來最小化我的scss文件。我的頁面設置爲使用* .min.css文件。在隨機時間,min文件不會與系統的其餘部分一起發佈。如果需要加載替代css css丟失

我有很多css文件,不想在每次發佈後手動檢查每個文件。

UPDATE:

  • 我想這是一個運行時間修復。意思是,如果瀏覽器找不到所需的CSS,它將無法完整的CSS。
  • 當我修改和發佈文件時,這個問題從未發生過。然而,我們有許多人在解決和更新git倉庫。不知怎的,一些用戶無意中刪除了* .min.css文件。這絕對不是故意的,不應該發生。

有沒有辦法指定我想* .min.css文件,但如果它缺少加載* .css而不是?

我意識到最好能夠避免這個問題,但我的問題是與故障安全的可能性具體相關的。我的應用程序是由我的用戶在他們自己的服務器上發佈的,所以我無法控制他們所做的事情,並且擁有這樣的選項可以讓我有更多的控制權和安全性。

UPDATE2:

另一種選擇是一個自動化工具,以確保所有的* .min.css文件被包含在最新的出版物。理想情況下,它會查找所有* .scss文件並驗證* .min.css是否存在,並在缺少任何標誌時提出標誌。

+0

你想在客戶端做到這一點?在瀏覽器中? – 2014-10-17 14:22:38

+8

聽起來像你應該修復發佈問題,而不是使用代碼。 – DavidG 2014-10-17 14:23:06

+0

@DavidG,我正在與開發人員一起幫助解決問題,但如果這樣的事情是可能的,那麼保證安全失敗仍然會很好。 – davids 2014-10-17 14:48:28

回答

2

收聽@DavidG的評論,解決發佈問題。如果真的真的不是一個選項我想接下來最好的事情是讓你的開發人員改變捆綁/縮小系統,以便它有一個適當的回退未註冊的文件。我猜。

但是,如果必須解決該問題,即黑客如果你只是想例如有一個書籤,以解決該問題暫時,你可以從this answer使用分拆。事情是這樣的:

var links = document.querySelectorAll('head link[href*=".min.css"]'); 

for (var i = 0; i < links.length; i++) { 
    var newLink = document.createElement("link"); 
    newLink.href = links[0].href.replace(".min.css", ".css"); 
    newLink.type = "text/css"; 
    newLink.rel = "stylesheet"; 
    newLink.media = "screen,print"; 
    var head = document.getElementsByTagName("head")[0]; 
    head.insertBefore(newLink, head.firstChild); 
} 

不要考慮使用在生產方案雖然。如果你這樣做,時空連續體將被撕裂,這個世界上所有剩下的獨角獸將被吸入深淵,並且可能任何人在這個世界中使用這些代碼。當然,我們不希望這樣。