我正在開發一個asp.net webforms網站。網站結構:梳理css文件後引用圖像
/
capabilities/
capability-A/
style.css
images/
imageA.png
imageB.png
capability-B/
style.css
images/
imageC.png
imageD.png
...
在發佈版本的所有style.css
文件合併,放入/style.css
文件。由於它們可能會在相應的capability/images
文件夾中引用圖像(使用相對路徑),因此所有圖像都將被複制到/images
文件夾中。
在調試版本上,結構不會改變(css文件沒有合併等)。
當我試圖在頁面上引用這些圖像時,問題就會顯現 - 調試版本和發佈版本中圖像的路徑不同(例如,調試時爲/capabilities/capability-A/images/foo.png
,發佈時爲/images/foo.png
)。
我想到的一個非常糟糕的主意是檢查HttpContext.Current.IsDebuggingEnabled
並且每次都放置不同的圖像路徑。
另一個 - 使用絕對路徑引用所有圖像,而不是將圖像複製到/images
文件夾。使用這種方法,我將無法在任何地方重命名/移動css,而無需更改其內容。
第三個是始終引用調試版本路徑,並在每個發行版本上用正確的路徑代替那些調試版本路徑(但我希望有一個更簡單的方法)。
如何在組合css文件後解決這個引用圖像問題?
你可以顯示一個例子,如何引用一個圖像的CSS? – Louis 2011-04-25 01:19:23
@Louis:喜歡'.bg-add { \t background-image:url('images/add.png'); }' – 2011-04-25 06:16:23
對於我來說,在調試和發佈構建中,路徑總是相對於css文件的位置。 – Louis 2011-04-25 17:25:09