视图中等效的Django staticfiles静态模板帮助器(Python代码)[重复]

Posted

技术标签:

【中文标题】视图中等效的Django staticfiles静态模板帮助器(Python代码)[重复]【英文标题】:Django staticfiles static tempalate helper equivalent in view (Python code) [duplicate] 【发布时间】:2017-11-25 13:07:12 【问题描述】:

我有一个使用 ManifestStaticFilesStorage 的 Django 应用程序,在生产中静态资产通过 CDN 提供,并且在模板中正确设置了对它们的引用,例如

模板:

% load staticfiles %
<script type="text/javascript" src="% static 'some.js' %"></script>

呈现的 html

     <script type="text/javascript" src="https://example.com/some.abc123.js"></script>

是否可以在视图中获取静态资产的完全限定 URL? 我想要一个重定向到我的 CDN 上的静态资产的视图。

类似:

import django.http HttpResponseRedirect

def my_lovely_view(request):
    static_asset_url = static('some.js') # does this fn exist?
    # static_asset_url == 'https://example.com/some.abc123.js'
    return HttpResponseRedirect(static_asset_url)

【问题讨论】:

当然我可以硬编码,但是我失去了 ManifestStaticFileStorage 提供的自动版本控制 【参考方案1】:
from django.contrib.staticfiles.templatetags.staticfiles import static

static_asset_url = static('x.jpg')

试试这个

【讨论】:

以上是关于视图中等效的Django staticfiles静态模板帮助器(Python代码)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

django 中 STATICFILES_DIRS 的路径

django staticfiles 在 url 根

django源码分析——静态文件staticfiles中间件

没有名为“django.contrib.staticfiles.templatetags”的模块

Django staticfiles图像未显示

django staticfiles amazon S3 的问题