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

这在我的本地机器上的 Theme.Master (Views/Themes/Blue/Theme.Master) 上运行良好,但在其最终主页的托管提供商上运行良好。如果 css 在 Content 文件夹中,在 Content 文件夹的任何子文件夹中,则 Theme.Master 可以找到 css,但如果 css 与 Theme.Master 在同一文件夹中,则不能。

我说得有道理吗?

非常沮丧

4

4 回答 4

1

您对尼克回答的评论意味着您试图将 .css 文件放在与 ~/Views/ 文件夹树下的 Theme.Master 文件相同的文件夹中。你不能这样做。~/Views/ 树被配置为阻止来自 Web 浏览器的所有 HTTP 请求。

您需要将 .css 文件放在可访问的位置。~/Content/ 文件夹树是放置 .css 文件的传统位置。如果您将 .css 文件移到那里,然后按照 Nick 的建议使用它,它将起作用:

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

作为记录,由于 web.config 文件中的这些指令,它在 Views 文件夹中不起作用(注意,在 Views 文件夹中直接有一个 web.config 文件)。这只是仅供参考。我不建议您尝试弄乱这些,因为它们通常是有充分理由的:

<!-- for IIS6 -->
<httpHandlers>
  <add path="*" verb="*"
      type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>

<!-- for IIS7 -->
<handlers>
  <remove name="BlockViewHandler"/>
  <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
</handlers>
于 2009-04-16T21:45:46.243 回答
1

您必须使用相对文件引用。尝试这个:

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

...这应该可以解决问题。

编辑 由于您评论说这不起作用,我查找了从哪里找到我的解决方案。我在这篇博文中从 Lance Fisher 那里得到了它。如果不能解决(因为它是在谈论 java 脚本文件),您也可以在这里查看之前回答的类似问题。希望有帮助!

于 2009-04-16T20:12:23.753 回答
0

您是否尝试过使用根路径?如:

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

或者

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

如果您的样式表不在您网站的根目录上。

于 2009-04-16T20:12:57.840 回答
0

在托管提供商上,该应用程序是否位于站点根目录中?或在子文件夹中?在这方面,您的开发环境是否与服务器上的设置相匹配?您可能需要确保您的工作相对于应用程序根目录,~/

从根本上说,这类似于此处讨论的相同问题(使用脚本) 。

于 2009-04-16T20:13:32.720 回答