Django支持静态文件进行生产

时间:2016-09-30 04:21:57

标签: python django

在我的settings.py中,

STATIC_ROOT = '/home/khantthulinn/webapps/static_media/'
STATIC_URL = '/home/khantthulinn/webapps/static_media/'

在我的urls.py中,

urlpatterns = patterns('',

    url(r'^admin/', admin.site.urls),

    #Media
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
        'document_root': settings.MEDIA_ROOT}),

)+ static(settings.STATIC_ROOT, document_root=settings.STATIC_ROOT)

之后,在我的网络服务器中,我复制了静态文件。

python manage.py collectstatic

一切都很好,我看得很清楚。

当我改变DEBUG = False时会出现问题。

我已经读过这篇文章,但我不明白。

https://docs.djangoproject.com/en/1.10/howto/static-files/deployment/

我也从这里读过解决方案。

Why does DEBUG=False setting make my django Static Files Access fail?

  

关闭调试Django将不会为您处理静态文件   更多 - 您的生产Web服务器(Apache或其他)应该采取   照顾那个。

我想尝试一下。我该怎么办?

我不想这样做,因为它不安全。

manage.py runserver --insecure

2 个答案:

答案 0 :(得分:1)

您必须为/static创建一个别名到它们本地的路径。阅读这个答案:

Django Static File Hosting an Apache

答案 1 :(得分:0)

如果您在mod_wsgi中使用apache,则需要更改wsgi.py文件。

您需要插入的只是文件末尾的那些行:

from django.core.wsgi import get_wsgi_application from django.contrib.staticfiles.handlers import StaticFilesHandler application = StaticFilesHandler(get_wsgi_application())

请注意,我使用的是Django 1.8(LTS),我不太确定这些功能是否仍在实际版本中。