2008-12-12 61 views
6

我假設這是一個簡單的問題,但如果我能找到答案,我就會受到影響。Visual Studio中樣式表的相對路徑在預覽中不起作用

我在Visual Studio 2008的網站樣式表(和圖像)的路徑是按以下格式/css/stylesheetname.css

在Web項目的Visual Studio中的根文件夾是否存在樣式表也一樣。這些路徑在IIS中運行時工作正常。

如果我使用Visual Studio中的內置Web服務器的路徑失敗,因爲它把項目名稱中的路徑,即http://localhost:2020/projectname/default.aspx

在這種情況下,/需要的路徑右後衛http://localhost:2020

這進一步加劇因爲如果單擊「設計」,導入背景圖像的樣式都會失敗,儘管樣式表已正確導入(因爲樣式表工作的所有其他方面,例如.class{font-family:arial;}有效,但.class{background: url(/images/image.jpg)}不適用)。

我想這是所有與Visual Studio如何計算其網站的根路徑,但我找不到一個設置來改變這一點。

任何想法?? 更新:根據Egil Hansen的答案我將CSS文件中的路徑轉換爲相對路徑。但是,背景圖像仍然不會在設計模式下顯示。我會在適當的時候看看使用主題來解決這個問題。

回答

0

它已經過了年齡,因爲我在css中做了任何事情,但也許URL(./ images/image.jpg) 將工作?

編輯: 或者〜/ format /css/stylesheetname.css或./format /css/stylesheetname.css作爲樣式表的網址。

5

我認爲正確的解決方案是在樣式表中使用相對URL,而不是現在使用的絕對URL。

請注意,樣式表中的相對URL與樣式表的位置相關,而不是瀏覽器正在查看的當前頁面。

如果您使用ASP.NET主題,則可以將所有網站圖形放入/App_Themes/YourTheme/Images/文件夾中,並將樣式表放入/App_Themes/YourTheme/文件夾中。

在你的樣式表中,你可以簡單地引用一個圖片url(Images/img.gif),它可以在線和開發。

你只需要通過web.config的頁面部分(<pages styleSheetTheme="Default">)將你的ASP.NET主題分配給你想要的頁面,該頁面將爲網站上的所有頁面分配一個主題,或者通過<% @ Page ...指令在每個頁面上。

一般來說,您可以使用ASP.NET主題和皮膚做一些非常整潔的事情,只需看看msdn.microsoft.com上的ASP.NET Themes and Skins Overview即可。

在ASP.NET中有幾個需要注意的主題,看看我的帖子How to take control of style sheets in ASP.NET Themes with the StylePlaceHolder and Style control,它解釋並解決了我到目前爲止遇到的問題。

0

我有同樣的問題,它讓我瘋狂。解決方案是添加一個Apps_Theme文件夾並將圖像複製到那裏。當您發佈該網站時,文件夾結構將被保留並顯示相應的問題。

0

我已經設置路徑的css url圖像 code {background:url(/images/xxx.jpg)no-repeat; } 和運行IIS的文件,因此必須對默認網站指向你的項目

如何運行測試預覽 類型: http://localhost/default.aspx

這是在服務器 正確的路徑相同的運行包括文件的JS和CSS可以 Noboyband

1

我一直在使用自定義映像文件夾爲我所有的圖形ASP.Net應用程序運行的項目中使用「/」根路徑

歡呼。雖然在這方面已經有進步VS IDE中可用的App_Theme和App_Code文件夾;我仍然保留我的文件夾,並且在服務器上部署它時還沒有失望。

因此,既然說 - 衆所周知的文件夾將與所有的垃圾桶,App_Code文件和_themes和參考它坐在通過這種方法制成

背景:網址(../圖像/ ..);

當然上面的代碼坐在CSS文件中。它爲我所有的時間

1

不知道這是否適用於2008年VS與否,但使用的Visual Web Developer 2010 IM和它的工作對我來說:

1)點擊在Solution Explorer

項目

2)它顯示其默認爲「/項目名」

3)「虛擬路徑」屬性更改爲「/」,而不是它似乎做什麼需要

讓我知道如果這對你有用!