2013-04-25 70 views
1

我已經使用UrlRewritingNet.UrlRewriter.dll擴展名將URL重寫規則應用於我的網站。在web.config文件中我寫的規則如下所示:?URL重寫後不加載樣式和腳本

<add name="Default" 
    virtualUrl="^~/(.*)/Default.zkn" 
    rewriteUrlParameter="ExcludeFromClientQueryString" 
    destinationUrl="~/Default.aspx?lang=$1" 
    ignoreCase="true" 
/> 

它很容易改變http://sitename.com/en/Default.zkn到Default.aspx的LANG = EN

head節的一部分是這樣的:

<link href="Styles/Default.css" type="text/css" rel="Stylesheet" media="screen" /> 

但是由於我已經應用了這個,所以在head部分沒有加載樣式和額外的JavaScript文件。

然後我試着添加~這個字符。

<link href="~/Styles/Default.css" type="text/css" rel="Stylesheet" media="screen" /> 

很多人都說這會奏效。但是,不,它不起作用。

加載頁面後,我在瀏覽器上打開源代碼,發現~字符未被我的站點文件夾替換。

因此,一個404錯誤發生的CSS和JS文件。

如何糾正?

有沒有辦法爲style/js文件添加新的URL重寫規則?

回答

2

也許你可以試試:

<% 
var basePath = String.Format("{0}{1}",Request.ApplicationPath, string.IsNullOrEmpty(Request.ApplicationPath) || !Request.ApplicationPath.EndsWith("/") ? "/" : ""); 
%> 

<link href="<%=basePath%>Styles/Default.css" type="text/css" rel="Stylesheet" media="screen" /> 
+0

是的,這解決了我的問題。謝謝。 – zkanoca 2013-04-25 08:06:48