从CDN和本地目录使用Django提供静态文件

时间:2014-09-03 04:37:31

标签: django python-2.7

是否可以从CDN和本地目录提供静态文件? 目前STATIC_URL指向CDN。我还配置了STATICFILES_DIR来提供本地目录中的文件。 django.contrib.staticfiles也在INSTALLED_APPS中。但是,如果我说:

"{% static "img/some_image.png" %}"

在我的模板中,Django尝试从CDN下载文件,并且从不尝试在本地搜索它。有没有办法可以从这两个地方提供服务?

1 个答案:

答案 0 :(得分:0)

不,它不能。它将始终根据STATIC_URL

的值构建网址

您可以做的是在settings.py中添加一个标记,这样如果您在本地主机上运行,​​则更改STATIC_URL变量:

if DEBUG:
   STATIC_URL = '/static/'

同样,在urls.py中,您也可以添加此项检查:

from django.conf import settings  # add this to the top
from django.conf.urls.static import static 

urlpatterns = ('',
               url(r'home/$', ... ),
               # your other urls here
)
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

manual提供了更多提示,包括在开发过程中提供媒体文件(用户上传文件)的类似代码。