URL重写后未加载的样式和脚本

时间:2013-04-25 07:07:51

标签: c# asp.net url-rewriting

我已使用UrlRewritingNet.UrlRewriter.dll扩展程序将网址重写规则应用于我的网站。在web.config文件中,我编写了如下规则:

<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" />

很多人说这会奏效。但不,它没有用。

页面加载后,我在浏览器上打开源代码,发现~字符未被我的站点文件夹替换。

因此css和js文件出现404错误。

如何纠正?

有没有办法为style / js文件添加新的URL重写规则?

1 个答案:

答案 0 :(得分: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" />