我有这个非常受欢迎的问题,但未能找到有效的解决方案。
基本上,我使用的是母版页(/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" />
答案 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)
您可能也有兴趣查看主题和皮肤。