我想在我的django 2.0.5模板中使用静态文件:
https://my_cloud_front_adress.cloudfront.net/staticfiles/picture_small.jpg
在Heroku上我设置了变量:
STATIC_URL = https://my_cloud_front_adress.cloudfront.net/staticfiles/
模板/ base.html文件
{% load static %}
{# this one is NOT working #}
<img src="{% static 'picture_small.jpg' %}" alt="my test image"/>
{# this one is working #}
<img src="https://my_cloud_front_adress.cloudfront.net/staticfiles/picture_small.jpg" alt="my test image"/>
如何设置STATIC_URL
使其在模板中正常工作:
<img src="{% static 'picture_small.jpg' %}" alt="my test image"/>
答案 0 :(得分:0)
根据django documentation,您需要..,
django.contrib.staticfiles
将其添加到INSTALLED_APPS
。STATIC_URL = '/static/'
添加到您的settings.py(我认为您忘记添加此内容。){% load static %}
。<img src="{% static "my_app/example.jpg" %}" alt="My image"/>
STATICFILES_DIRS
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), )
答案 1 :(得分:0)
您提供的STATIC_URL值将相对于您的应用,因此添加外部网址并不合理。如果您希望文件在本地获取,则应下载它们并将它们本地存储在应用程序中STATICFILES_DIRS中指定的目录中,并按照Django docs中的说明配置静态文件。
否则,您只需通过网址直接访问文件,而不必将其视为项目中的静态文件。
答案 2 :(得分:0)
user3170828答案是正确的,但要添加,您可以尝试django-storages,这将负责将静态文件同步到S3 / Cloudfront和URL。