2014-01-30 18 views
0

可以說我有一個css,它引用了另一個資源說圖像。 E.gc包含abc.css。 background:url(/a/rfp/images/logo.png)no-repeat;在運行時更改CSS中的值(特別是.Net)

現在我想改變在運行時的URL指向一些其他域說:

背景:網址(http://cdn1.domain.com/a/rfp/images/logo.png)不重複; 此cdn1.domain.com將來自一個變量。並且這個可以在運行時改變 說 背景:url(http://cdn2.domain2.com/a/rfp/images/logo.png)no-repeat; 所以有意義的是使用變量綁定這個域。

我可以使用編譯時生成css。 任何模板化解決方案?或其他任何東西。 要記住的一點是:域名可以在運行時更改。因此,對於每個HTTP請求,可以更改變量並因此更改域名。

+0

爲什麼不把CSS放在那裏 - 它更容易改變HTML中的CSS路徑(最有可能通過ASPX/CSHTML動態生成)比動態創建CSS ...無論如何你正在尋找CSS?只是基本'String.Replace'和服務通過'返回Content(changeString,「text/css」)爲MVC將工作... –

+1

有人聽說過'.less'? – Anup

+0

取決於你在做什麼..這可能有助於.. http://www.hanselman.com/blog/CDNsFailButYourScriptsDontHaveToFallbackFromCDNToLocalJQuery.aspx - 在.net中使用scriptmananger來切換本地或cdn。 –

回答

1

OK林不知道的這方面的需要,因此解決方案可能不完美..但...

對於有問題的css文件..它更改爲一個aspx頁面,添加<% Response.ContentType = "text/css" %>頂端的文件。然後,您可以使用URL參數更改文件中的值。這些url參數可以根據您的應用程序的需要進行更改,方法是修改主頁面中文件的URL。

這將意味着你不能捆綁有問題的css文件,但是很難將運行時改變的文件捆綁到你想要的地方。