2014-09-03 95 views
3

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

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

在我的模板,Django会尝试下载从CDN文件,从来没有试图在本地搜索。有两种方法可以在两个地方提供服务吗?

回答

0

不,它不能。它将始终从STATIC_URL的值构建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包括开发过程中类似的代码来服务的媒体文件(用户上传的文件)。

+0

请试试这个,谢谢。 – elena 2014-09-03 05:19:19