css - 为什么 css 和图像在 asp.net 中重写 URL 时会失真?

标签 css asp.net url-rewriting imageurl

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

现在,我已将 LinkBut​​ton 的 URL 动态构建为 'CellPhone/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'>

目录.aspx

<asp:HyperLink ID="HyperLink6" runat="server" NavigateUrl="/cellphone/blackberry/sprint/228.aspx">Show Cellphones asdfsdf</asp:HyperLink>

Global.asax

<%@ 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");
    }
}

一切正常,只是页面和图片上的 css 没有应用!

最佳答案

只需更改 CSShref 相对于它的 root 而不是当前位置,

改变

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

/css/layout.css 表示文件 layout.css 位于 root 文件夹 css 中> 无论你在哪里调用它,例如,如果你的页面是这样的

http://www.example.com/product/smartphone/blackberry

如果你使用

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

它会寻找路径为 root/product/smartphone/blackberry/css/layout.csscss,因为该文件夹或路径中没有文件,它无法加载 CSS 文件,这会导致您的 CSS 受到干扰。

关于css - 为什么 css 和图像在 asp.net 中重写 URL 时会失真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27098808/

相关文章:

html - 如果目标元素嵌套很深,则使用 50% 的高度作为视口(viewport)

javascript - 如何使输入字段末尾的 fontAwesome 图标也可点击

javascript - ASP.NET Javascript 服务服务器端渲染特定路由

javascript - 用asp.net中的标签文本替换href值

asp.net - Request.Url.AbsoluteUri 和重写的 URL

html - 如何生成随 css 中的每次重复而翻转的图像背景?

javascript - 区分 docusaurus 中的页面/内容

ASP.NET Web.config 加密 - 无法访问临时文件

apache - 将 {query}.ts 重写为 ts.php?{query}

java - 如何从 jython 的 url 中删除 .py