如何附加样式表?

时间:2010-11-23 18:27:38

标签: css asp.net-mvc vb.net stylesheet

对于其他遇到此问题的人来说,这是一个权限问题iis我必须在整个树上设置权限才能呈现样式表

如何附加样式表?我试过通常的方式:

<LINK REL=StyleSheet HREF="../../Content/Site.css" TYPE="text/css" MEDIA=screen>

具有各种文件路径。我也尝试过使用vb url.content脚本。出于某种原因,我尝试的任何内容都不会显示在浏

我得到了各种结果:

  • 找不到样式表
  • 有时firebug只显示html写的

还有什么问题?

它附加到主文件,所以我不知道这里还有什么问题。 alt text

3 个答案:

答案 0 :(得分:3)

MVC应用程序需要记住的是,您的URL通常与您的实际文件系统不匹配。

假设您的文件夹结构设置类似于默认值:

/Content/
/Content/Site.css
/Views/
/Views/Home/
/Views/Home/index.aspx
/Views/Shared/
/Views/Shared/site.master

将样式声明添加到母版页时,相对路径是有意义的:

../../Content/Site.css
  

从我现在的位置向上移动两个文件夹,然后向下移动到/content以找到Site.css

但是,当您在浏览器中查看该页面时,该相对路径不再有效:

http://www.example.com/Home/

这两个文件夹在哪里?更糟糕的是,一个深层次的链接:

http://www.example.com/blogs/2010/11/23/My-posting

这将尝试在/ blogs / 2010 /文件夹中查找名为Content的文件夹。

您有两种选择:

  1. 使用绝对链接:href="/Content/Site.css"这将告诉浏览器始终从您网站的根目录开始。
  2. 使用应用程序根链接:href="~/Content/Site.css" - 如果链接位于设置为runat="server"的控件中,则应在运行时更正该链接以指向应用程序根目录。

  3. 回复评论

    好的,但我们现在正在某个地方:

    查看您发布的网址,在您的开发计算机上,您是否将该网站作为根目录下的应用程序运行?因此,当您申请该网站时,您将:http://localhost/pulse/

    那么,如果您请求http://localhost/pulse/Content/Site.css,您会在浏览器中看到什么?

    您的Global.asax.cs文件中的Routes集合是什么样的?那里有什么东西干扰了/ Content /文件夹吗?

答案 1 :(得分:2)

这是 Asp.net MVC 不要使用相对文件路径,因为路径主要与路由相关。请改用Url.Content()助手。

<link rel="StyleSheet"
      href="<%= Url.Content("~/Content/Site.css") %>"
      type="text/css"
      media="screen" />

答案 2 :(得分:1)

“您也可以将文件从解决方案资源管理器拖到源视图中页面的head元素,或者从解决方案资源管理器中拖动文件并将其放在页面的任何位置,在设计视图中。”

http://msdn.microsoft.com/en-us/library/bb398932.aspx

<强>更新

查看此帖子:http://forums.asp.net/p/1469427/3399574.aspx

Robert提供的语法应该有用。