母版页中的 ASP.NET CSS 文件
Posted
技术标签:
【中文标题】母版页中的 ASP.NET CSS 文件【英文标题】:ASP.NET CSS file in master page 【发布时间】:2011-02-12 01:29:48 【问题描述】:在我的应用程序中,我遇到了下一个问题。我创建了母版页和一些内容页,其中一些位于嵌套文件夹中。在母版页中,我添加了指向 .css 文件的链接
<link href="default.css" rel="stylesheet" type="text/css" />
但页面位于嵌套文件夹中,无法使用此 .css 文件。我怎样才能解决这个问题?我想为所有页面创建一个 .css 文件(:
谢谢!
【问题讨论】:
【参考方案1】:<link href="~/default.css" rel="stylesheet" type="text/css" />
【讨论】:
它不起作用。也许指向 css 的链接不是服务器端的内容,并且此链接在客户端无法使用.. 它不起作用。也许指向 css 的链接不是服务器端的内容,并且此链接在客户端无法使用.. 对不起,你是对的!如果您将“runat=server”添加到您的正文标签,它将起作用!所以,你的答案是最正确的!谢谢! 即使使用 'runat="server"' 这对我也不起作用。我还需要在 href 中添加 ResolveURL。所以,这里是结果<link id="Link1" href='<%= ResolveUrl("~/css/site.css") %>' rel="stylesheet" media="screen" type="text/css"/>
对于一个非常好的和简单的例子,向下滚动到 wfz 的解决方案。【参考方案2】:
可以通过在母版页中添加下一个代码来解决此问题
<style type="text/css" runat="server">
@import '<%= ResolveUrl("~/default.css")%>';
</style>
但是 VS 的设计者无法处理这个,你无法在其中查看你的样式。
【讨论】:
这对我很有用(VS2013)......在尝试了上面那些不起作用之后。还具有非常简单的优点!【参考方案3】:如果您使用网站下的网站,请更改子文件夹母版页CSS链接
<link href="Styles/Site.css" rel="stylesheet" type="text/css" />
用下面的改变
<link href="../Styles/Site.css" rel="stylesheet" type="text/css" />
【讨论】:
这是最好的解决方案:只需使用与母版页位置相对的路径链接到样式表。 ASP.NET 将在生成 html 时修复路径。 (可能需要将 runat="server" 添加到母版页的 head 元素。) 不幸的是,这似乎不适用于 javascript 和图像资源的 src 属性。【参考方案4】:css 不应与母版页相关,而应与使用母版页的 Page 实例的位置相关。在大多数情况下,这将是同一件事,但我总是会尝试使用完全限定路径或站点相对路径
完全限定路径
<link href="http://some.site.com/mysite/styles/default.css" rel="stylesheet" type="text/css" />
或相对路径(请注意,如果您的版本只能托管一个站点但可以托管许多应用程序,例如 WinXP,这可能不起作用)
<link href="/default.css" rel="stylesheet" type="text/css" />
win xp 相对路径
<link href="/path/to/application/default.css" rel="stylesheet" type="text/css" />
【讨论】:
【参考方案5】:您定义样式表的方式意味着:样式表与使用它的页面位于同一文件夹中。
如果您想为所有页面使用一个样式表,您应该放在一个位置(我更喜欢应用程序根目录中的/assets/css
文件夹)并使用此文件夹定义路径:
<link href="/assets/css/default.css" rel="stylesheet" type="text/css" />
另一种存档方式是使用Themes,在这种情况下,样式将自动添加。
【讨论】:
以上是关于母版页中的 ASP.NET CSS 文件的主要内容,如果未能解决你的问题,请参考以下文章
asp.net 中母版页、用户控件中属性的调用、赋值方法求解。
从 asp.net 中的 contentpage 将 css 类分配给母版页控件