【问题标题】:Absolute paths for CSS files in ASP.netASP.net 中 CSS 文件的绝对路径
【发布时间】:2014-03-20 19:12:55
【问题描述】:

当我将其部署到 IIS6 时,我的 ASP 网站出现错误,告诉我无法使用前导 .. 退出顶级目录。我搜索了谷歌并查看了在 stackoverflow 上发布的类似问题,并看到了将我的相对路径 ... 替换为 ~ 的建议。

这是我的 CSS 文件夹的路径: LMS\assets\css
尝试访问 CSS 的页面所在的位置: LMS\MasterPages
我的项目结构:
LMS
-->资产
-->css
-->MasterPages
-->默认.aspx

但是,我似乎无法让我的路径正常工作。我的 Default.aspx 找不到我的 CSS 文件。这是一个示例:
工作:<link href="../assets/css/globalStyles.css" rel="stylesheet" runat="server"/>

Alt 1:href="~/assets/css/globalStyles.css"
Alt 2:href="~\\assets\\css\\globalStyles.css"
Alt 3:@987654327 @

所有这些替代方法都不起作用。当我调试我的网站时,没有样式存在,所有的都只是纯文本。谷歌浏览器指出我的路径被错误地读取。它被读作:
http://localhost:2981/LMS/Admin/~/assets/css/globalStyles.css


可以分享一些关于为什么会发生这种情况的想法吗?为什么我的页面找不到我的 CSS 文件?我什至尝试在页面加载时绑定页面标题,但它仍然无法正常工作。

一些想法?任何帮助将不胜感激!

【问题讨论】:

  • 试试这个<link href="assets/css/globalStyles.css" rel="stylesheet" runat="server"/> 因为您的资产文件夹是父文件夹并且存在于父级别。让我知道这是否有效
  • ^^ 这对 Rohan 先生不起作用。我的 default.aspx 需要访问其父文件夹 MasterPages 之外的 CSS 文件。我的项目中有两个文件夹,一个是 assets(包含我的 CSS 文件),另一个是 MasterPages(包含 Default.aspx)。谢谢!
  • 如果是这种情况,请尝试 <link href="../assets/css/globalStyles.css" rel="stylesheet" runat="server"/> 这将使编译器在 MasterPage 文件夹之外搜索 assets 文件夹。
  • 我曾经使用 ... 但我想用 ~ 替换它,因为不这样做会在 IIS 中部署时产生错误。谢谢!

标签: html asp.net css relative-path absolute-path


【解决方案1】:

您必须使用 Page.ResolveUrl (WebForms) 或 Url.Content (MVC) 解析路径“~/assets/css/globalStyles.css” - 所以您的 Alt 3 必须有效。通过浏览器的“查看源码”查看页面html-href是什么?

【讨论】:

  • 感谢伊戈尔先生!我重新插入了 Alt 3,看看出了什么问题。出于某种奇怪的原因,省略 runat="server" 解决了这个问题!感谢您让我知道我的 Alt 3 确实是正确的!谢谢!
【解决方案2】:

要么 -> Url.Content("~/assets/css/globalStyles.css") 或者你可以直接使用 -> href="/assets/css/globalStyles.css"

【讨论】:

    猜你喜欢
    • 2011-07-09
    • 1970-01-01
    • 2013-12-20
    • 2020-06-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 2011-09-17
    • 1970-01-01
    相关资源
    最近更新 更多