我有我的django应用程序的模板,由网页设计应用程序(axure)设计。因此,这些模板文件中的所有静态文件引用都是相对的,例如
<img src="/resources/image/icon.gif"/>
我按照此处https://docs.djangoproject.com/en/dev/howto/static-files/的说明修改了应用程序的设置以包含静态文件并修复了STATIC_URL。但是,通过这种方式,我仍然必须将此标记{{ STATIC_URL }}
放在每个静态文件引用的前面。
是否有一种通用的方法可以让django接受静态文件的这些相对路径?
谢谢!
答案 0 :(得分: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/”,你的引用都会起作用。< / p>
长而短,不,没有“通用方式”。您必须告诉浏览器它可以找到文件的确切位置,并且需要使用{{ STATIC_URL }}
。
答案 1 :(得分:0)
如果您使用像nginx这样的后端,可以将/ staticimage设置为指向/ path / to / static / resources / image /然后使用/ staticimage。
我确定您使用的任何Web服务器都可以获得这样的路径映射。