2010-05-11 48 views
4

我試圖包含腳本和樣式引用,不會中斷部署,但我甚至無法獲取引用以在本地工作。我試過使用Url.Content()和MVCContrib的<%=Html.ScriptInclude("")%>asp.net mvc腳本和樣式引用

我的腳本位於站點根目錄下的腳本文件夾中;我的風格在通常的 Content/css /文件夾中。

腳本呈現這樣的:

<script type="text/javascript" src="/Scripts/MicrosoftAjax.debug.js" ></script> 

這將在視圖頁面在瀏覽文件夾無法正常工作。我做錯了什麼,處理這個問題的最好方法是什麼?

我還以爲Url.Content()將爲風格至少工作,但在我的母版頁中使用時,鏈接呈現

<link href="/Content/css/Site.css rel="stylesheet" type="text/css" /> 

這是不行的,因爲母版頁是在共享文件夾,那麼是什麼真的是這樣的前進之路嗎?

+0

呵呵,奇怪......我以爲我用了Url.Content,它對我有用;至少,您可以始終使用../../,因爲您的所有視圖總是位於視圖根文件夾內的一個文件夾(除非您自定義該過程)。 – 2010-05-11 19:00:16

+0

真的如果部署爲虛擬目錄,而不是網站,這會不會弄亂路徑?必須有某種方式來管理這一點。我也很驚訝,Url.Content不起作用,哦! – tom 2010-05-11 22:01:27

回答

5

<link href="<%= ResolveUrl("~/Content/css/Site.css")%>" rel="stylesheet" type="text/css" />

作品樣式表。但如果你是在MVC2,你必須在腳本目錄中的文件,那麼你可以使用新的幫手:

<%=Html.Script("scriptfile.js") %> 

這是更好的做法,你還可以指定發佈和調試模式下的文件:

<%=Html.Script("scriptfile-min.js", "scriptfile.js") %> 
+0

+1 - 不知道! – Chris 2010-05-11 22:52:43

0

我不喜歡這樣寫道:

<link href="<%= ResolveUrl("~/Content/css/Site.css")%>" rel="stylesheet" type="text/css" /> 

此外,採取RUNAT =服務器出你的頭標記的,如果你不希望它試圖做你不看好。

(編輯 - 固定錯位的報價)

更新:爲了澄清,我其實確實有這方面的工作在發展中(本地主機:1227,根),我的測試服務器上(全域,根)和生產中(不同的領域,在一個子目錄中)。在任何情況下都很棒!