【问题标题】:Best practices, How to specify relative path for css,javascript and images files?最佳实践,如何指定 css、javascript 和图像文件的相对路径?
【发布时间】:2011-07-09 21:04:45
【问题描述】:

我有一个关于 Asp.C# 应用程序中外部 javascript、css 和图像文件的相对路径的问题。

我的页面有 2 - 5 个子级别,所以我的 javascript 和 css 文件看起来像

../../../../../javascriptfile.js
../../../cssfile.css
../../../../../../image.jpg

如果是额外的子级别应用程序将找不到文件。

指定文件路径的最佳做法是什么???

【问题讨论】:

  • 答案将只是重新组织文件以减少此类相对路径的使用:)

标签: c# javascript asp.net css image


【解决方案1】:

在考虑这些答案时请记住,“root-relative”和“站点的根”可能实际上是指 url 中域名之后的路径的根。您可能需要考虑您的网站不位于根目录的情况。在这种情况下,与根目录相关的路径可能会指向不同的网站。

在 ASP.NET 中,您可以使用前导 ~ 来为大多数服务器端控件生成相对于当前站点根目录的 url,如下所示: <img src="~/image.jpg" runat="server">

您还可以使用ResolveUrl 方法(和其他类似方法)来扩展此类路径,而无需使用服务器端控件。

【讨论】:

  • 这有一个额外的好处,那就是在母版页中工作得很好,并且与高级路由技术更加一致。请记住,同一页面(或母版页)可能会从您的应用程序中的不同路径引用。
【解决方案2】:

使用绝对路径或根相对路径以避免多级页面中的混淆。

查看此处了解更多信息: http://www.motive.co.nz/glossary/linking.php

【讨论】:

    【解决方案3】:

    使用这样的根相对路径:

        /js/javascriptfile.js
        /css/style.css
    

    第一个 / 表示网站的根目录。

    【讨论】:

    • 我通常避免引用这样的脚本以避免虚拟路径问题。如果您确定您的项目将始终托管在 Web 服务器的根目录之外,则此方法有效,但我个人知道这种情况很少发生。上面的 ResolveUrl 提示是一个更安全的选择。
    猜你喜欢
    • 2021-09-07
    • 2021-11-20
    • 2015-04-05
    • 2010-10-04
    • 2011-08-16
    • 2012-10-27
    • 2019-01-12
    • 2011-05-12
    • 1970-01-01
    相关资源
    最近更新 更多