2010-05-06 65 views
4

目前,對於像背景圖片這樣的東西,我們的css文件沒有指定域。這適用於我們的開發和生產環境。在css中更改圖像域/路徑以進行生產?

background-image: url(/images/bg.png); 

出於性能的考慮(cookie的域),我們想關掉這個:

background-image: url(http://staticimagedomain.com/images/bg.png); 

理想情況下,我們不硬編碼的,所以我們的發展環境仍然可以拉動當地。

有關如何最好地實現這一點的任何想法?

+0

是這些靜態文件,還是您使用服務器端腳本語言ASP或PHP生成它們? – 2010-05-06 18:32:46

回答

6

我會建議在無cookie的域中託管CSS文件,而不僅僅是圖像。那麼你將能夠使用相對路徑,這將在生產環境和其他任何環境中都可以使用。

如果您部署CSS文件到cookie的域名:

http://staticimagedomain.com/main.css 

然後你可以離開這個相對URL /images/bg.png,這將正常工作從兩種環境。

無論如何,CSS文件並不需要cookies。

+1

啊,這是有道理的,圖像將相對於CSS文件的域,而不是包含頁面的域。 。 。 – Neil 2010-05-06 18:49:44

+0

是的,它工作正常。好奇的是:我正在檢查一些示例來備份我的答案,並且檢查了Stack Overflow,Amazon.com,Yahoo和You Tube的CSS,它們都使用無cookie的域。他們都將CSS文件託管在無Cookie域中,但是他們仍然使用完整的絕對URL來引用圖像。 – 2010-05-06 18:55:01

+0

但是我也發現這是另一個來源:http://stackoverflow.com/questions/2488369/serving-css-from-a-static-domain – 2010-05-06 18:55:34

0

在主機文件中輸入以將staticimagedomain.com重定向到localhost或您的測試頁所服務的位置?

不是一個很好的解決方案,但快速和容易。

+0

好的解決方案,那也可以! – Neil 2010-05-06 18:50:14

0

要添加到其他明智的答案:有時有兩個樣式表,一個用於開發生產的樣式表,只有一些區別(例如:一些背景顏色)可幫助識別實例並防止混淆。您的構建 - 部署腳本(Ant)將負責在進行生產時移動css文件。

如果你這樣做(或者認爲這樣做會很好),那麼你的問題有一個微不足道的答案。