【问题标题】:django - referring to static files in templatesdjango - 引用模板中的静态文件
【发布时间】:2012-02-28 03:15:21
【问题描述】:

我有一个网页设计应用程序 (axure) 为我的 django 应用程序设计的模板。所以这些模板文件中引用的所有静态文件都是相对的,比如

<img src="/resources/image/icon.gif"/>

我按照https://docs.djangoproject.com/en/dev/howto/static-files/ 此处的说明修改了应用程序的设置以包含静态文件并修复了 STATIC_URL。但是,通过这种方式,我仍然必须将此标记 {{ STATIC_URL }} 放在每个静态文件引用的前面。

有没有一种通用的方法可以让 django 接受这些静态文件的相对路径?

谢谢!

【问题讨论】:

    标签: django relative-path django-staticfiles


    【解决方案1】:

    这不是“相对”路径。这就是所谓的“相对绝对”。当您添加/ 时。它告诉浏览器直接从域中引用以下路径。这与 Django 无关。它与浏览器有关,它们全部都是这样工作的。

    {{ STATIC_URL }} 没有什么特别之处;这只是一种简单而安全的方法,可以用正确的路径为静态文件的引用添加前缀。您实际上可以在 HTML 中硬编码完整的 URL:

    <img src="/path/to/static/resources/image/icon.gif"/>
    

    但是,如果您的 STATIC_URL 曾经更改过,那么您将不走运。这就是您使用{{ STATIC_URL }} 的原因,因此无论它设置为“/static/”还是“http://cdn.someprovider.com/myproject/something-else/static/”,您的引用始终有效。

    长短不一,不,没有“通用方式”。你必须告诉浏览器它在哪里可以找到文件,这需要使用{{ STATIC_URL }}。

    【讨论】:

      【解决方案2】:

      如果您使用像 nginx 这样的后端,您可以将 /staticimage 设置为指向 /path/to/static/resources/image/,然后使用 /staticimage。

      我确信您使用的任何网络服务器都可以得到这样的路径映射。

      【讨论】:

        猜你喜欢
        • 2012-12-10
        • 2011-12-18
        • 2013-06-18
        • 2016-11-11
        • 1970-01-01
        • 1970-01-01
        • 2013-01-23
        • 2023-04-01
        • 1970-01-01
        相关资源
        最近更新 更多