在.net中的.aspx页面链接css的最佳方法是什么

时间:2011-04-29 11:04:48

标签: asp.net css

在我的.net应用程序中,我在CSS文件夹中有Styleshet.css。

现在我想在Sample.aspx中链接这个css。

什么是最好的方法

1

<link href="CSS/StyleSheet.css" rel="Stylesheet" type="text/css" />
                             OR

2

<link href="<%=ConfigurationManager.AppSettings["ApplicationUrl"].ToString()%>/CSS/StyleSheet.css" rel="Stylesheet" type="text/css" />

在Web.Config

<appSettings>
    <add key="ApplicationUrl" value="http://localhost/myapp/" />
</appSettings>

4 个答案:

答案 0 :(得分:5)

asp.net中最好的方法是选项3:

<link href="~/CSS/StyleSheet.css" rel="Stylesheet" type="text/css" />

~/解析为站点路径根目录。这与"css/...之间的区别在于,无论您使用的是哪个子文件夹,它都会有效。例如,如果您的代码位于

/subsection/default.aspx

,您的样式位于文件夹/css

使用指向"css/stylesheet.css"的链接会(错误地)解析为"/subsection/css/stylesheet.css",而使用"~/css/stylesheet.css"则会(正确)解析为"/css/stylesheet.css"

这也与硬路径根"/css/stylesheet.css"的不同之处在于,无论站点的虚拟目录配置如何,它都能正常工作。

答案 1 :(得分:1)

<link href="CSS/StyleSheet.css" rel="Stylesheet" type="text/css" />

不要采用第二种方法,因为当您将网站部署到服务器时/localhost/引用无效。

答案 2 :(得分:0)

相对路径approch要好得多(你的第一个approch),绝对路径在应用程序之间不可移植。如果移动绝对路径指向的应用程序,链接将中断。

您可以在下面提到的链接中找到更多信息

Specifying Paths for Resources

答案 3 :(得分:0)

好吧,总是使用相对路径,这样您就不必在部署后更改文件。

您还可以使用已解决的应用相对路径,例如

<link href="<%= ResolveUrl("~/CSS/StyleSheet.css") %> rel="Stylesheet" type="text/css" />