主页面上的CSS和图像

时间:2009-10-13 11:13:41

标签: css image master-pages

我有这个非常受欢迎的问题,但未能找到有效的解决方案。

基本上,我使用的是母版页(/Masterpages/Default.master),其中包括

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

它还包括一些具有相同相对链接的图像。

但是当我将母版页应用于内容页面(在不同的文件夹级别)时,css格式化和图像丢失。

是否有动态解决使用母版页将css和图像的文件夹级链接到所有内容页面?

提前致谢

更新

还有一个问题。在浏览器和Visual Studio的设计视图中正确呈现输出是很棘手的。

我通过使用 asp:image 解决方案为主页中的图像和双重链接主页中的css ,一个使其渲染在VS和一个正确浏览网站的过程中。

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

8 个答案:

答案 0 :(得分:10)

最好用:

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

因为这将处理iis应用程序的根源,不像:

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

答案 1 :(得分:3)

您可以使链接runat =“server”并使用波浪线映射来生成相对于站点根目录的CSS路径。

<link runat="server" id="siteStyle"
      href="~/css/style.css"
      rel="stylesheet"
      type="text/css" />

CSS中引用的图像应该与CSS文件的位置相关,并且一旦正确包含CSS文件本身就应该正常解析。对于页面上标签中的图像,您需要使用ASP:Image控件,并再次使用波浪线映射作为相对于根的路径。

答案 2 :(得分:1)

相当确定这会有效

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

/将您带到您网站的根目录

答案 3 :(得分:1)

您可以使用代字号从任何地方获取链接。这也适用于图像。

<link runat="server" href="~/css/style.css" rel="stylesheet" type="text/css />

答案 4 :(得分:0)

CSS中的图像与它们所引用的文件有关。

(例外情况是Internet Explorer中用于PNG修复的“过滤器”规则。在这种情况下,图像与HTML文档相关。)

答案 5 :(得分:0)

是的,问题是materpage正在使用相对网址来加载CSS:

"../css/style.css"

您需要将其更改为站点根目录(取决于您的css文件的位置),例如:

"/css/style.css"

比所有各种文件夹级别都可以使用相同的URL。

答案 6 :(得分:0)

实际上,母版页会自动为你修改css文件,而不必添加runat =“server”。确保您的css文件位于您指定的文件夹中的一个目录中。

您可以使用css文件的绝对路径,但是当您执行此操作时,visual studio似乎不会在设计视图中呈现样式。此外,有时你不知道你是否会在虚拟目录中运行,所以使用绝对路径并不总是理想的。

此外,使用css文件本身的图像声明的相对链接 - 无论您如何链​​接到样式表,它都将起作用。

答案 7 :(得分:0)

您可能也有兴趣查看主题和皮肤。

ASP.NET Themes and Skins Overview