1

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

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

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

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

谢谢!

4

2 回答 2

4

这不是一条“相对”的路径。这就是所谓的“相对绝对”。当您添加/. 它告诉浏览器直接从域中引用以下路径。这与 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 }}.

于 2012-02-06T17:20:48.420 回答
0

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

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

于 2012-02-06T17:23:29.933 回答