为什么css&;在asp.net中重写URL时图像是否失真?

为什么css&;在asp.net中重写URL时图像是否失真?,css,asp.net,url-rewriting,imageurl,Css,Asp.net,Url Rewriting,Imageurl,我有一个显示项目列表的.aspx页面。目前它显示的是www.site.com/Catalog.aspx?mid=228,需要是www.site.com/mobile/blackbery/sprint/Q10.aspx。所有项目都显示在数据列表中,在按钮上单击超链接重定向到Catalog.aspx,查询字符串“id”是设备id 现在,我已经为LinkButton动态地构建了URL,如“mobile/blackbery/sprint/228”以及其他项目 以上链接重定向和URL更改,但css受到干扰

我有一个显示项目列表的.aspx页面。目前它显示的是
www.site.com/Catalog.aspx?mid=228
,需要是
www.site.com/mobile/blackbery/sprint/Q10.aspx
。所有项目都显示在数据列表中,在按钮上单击超链接重定向到
Catalog.aspx
,查询字符串“id”是设备id

现在,我已经为LinkButton动态地构建了URL,如“mobile/blackbery/sprint/228”以及其他项目

以上链接重定向和URL更改,但css受到干扰我想动态重写所有链接,而不是像上面那样硬编码。

css参考:

<link href="css/layout.css" rel="stylesheet" type="text/css" />
<link href="css/reset_font_grid.css" rel="stylesheet" type="text/css" />
<link href="css/buttons.css" rel="stylesheet" type="text/css" />
<link href="css/inner-pages.css" rel="stylesheet" type="text/css" />
<link href='http://fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'>

Catalog.aspx

<asp:HyperLink ID="HyperLink6" runat="server" NavigateUrl="/cellphone/blackberry/sprint/228.aspx">Show Cellphones asdfsdf</asp:HyperLink>
<%@ Application Language="C#" %>
<%@ Import Namespace="System.Web.Routing" %>
<script runat="server">
    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        RegisterRoute(System.Web.Routing.RouteTable.Routes);
    }

    void RegisterRoute(RouteCollection routes)
    {
        //http://aspsnippets.com/Articles/How-to-hide-remove-ASPX-extension-in-URL-in-ASPNet.aspx
        routes.MapPageRoute("44", "{cat}/{carrier}/{devices}/{id}.aspx", "~/Catalog.aspx");
    }
}
将手机显示为DFSDF
Global.asax

<asp:HyperLink ID="HyperLink6" runat="server" NavigateUrl="/cellphone/blackberry/sprint/228.aspx">Show Cellphones asdfsdf</asp:HyperLink>
<%@ Application Language="C#" %>
<%@ Import Namespace="System.Web.Routing" %>
<script runat="server">
    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        RegisterRoute(System.Web.Routing.RouteTable.Routes);
    }

    void RegisterRoute(RouteCollection routes)
    {
        //http://aspsnippets.com/Articles/How-to-hide-remove-ASPX-extension-in-URL-in-ASPNet.aspx
        routes.MapPageRoute("44", "{cat}/{carrier}/{devices}/{id}.aspx", "~/Catalog.aspx");
    }
}

无效应用程序\u启动(对象发送方,事件参数e)
{
//在应用程序启动时运行的代码
RegisterRoute(System.Web.Routing.RouteTable.Routes);
}
无效注册表路由(路由收集路由)
{
//http://aspsnippets.com/Articles/How-to-hide-remove-ASPX-extension-in-URL-in-ASPNet.aspx
MapPageRoute(“44”、“{cat}/{carrier}/{devices}/{id}.aspx”、“~/Catalog.aspx”);
}
}

一切正常,但仅页面和图像上的css不适用

只需更改
CSS
href
相对于其
根的
而不是从当前位置

改变

<link href="css/layout.css" rel="stylesheet" type="text/css" />
<link href="css/reset_font_grid.css" rel="stylesheet" type="text/css" />
<link href="css/buttons.css" rel="stylesheet" type="text/css" />
<link href="css/inner-pages.css" rel="stylesheet" type="text/css" />
如果你使用

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


它将通过此路径查找
css
root/product/smartphone/blackberry/css/layout.css
,因为该文件夹或路径中没有文件,它无法加载导致您的
css
受到干扰的
css
文件。

您需要使用
ResolveUrl

示例:

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


如果您有任何问题,请告诉我。

最简单的方法应该是添加一个不是文件的条件:

                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                </conditions>


hi@Amarsinh Pol感谢您的回复,这很好!:)嗨@Kyoijimaru,我也试过这个……这个也很有效。。!so+1:)