【问题标题】:Django support static file for production [duplicate]Django支持用于生产的静态文件[重复]
【发布时间】:2016-09-30 04:21:56
【问题描述】:

在我的 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 不会为您处理任何静态文件 更多 - 您的生产网络服务器(Apache 或其他)应该采用 照顾那个。

我想试试。我该怎么办?

我不想运行它,因为它不安全。

manage.py runserver --insecure

【问题讨论】:

  • your production web server (Apache or something) should take care of that 所以你需要配置 Apache 或其他东西来处理静态。
  • 是的。你能指导我配置apache吗?我在 webfaction 中托管。

标签: python django


【解决方案1】:

您必须为/static 创建一个别名,指向它们在本地的路径。阅读此答案:

Django Static File Hosting an Apache

【讨论】:

    【解决方案2】:

    如果您将 apache 与 mod_wsgi 一起使用,则需要更改您的 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),我不太确定这些功能是否仍在实际版本中。

    【讨论】:

      猜你喜欢
      • 2015-06-19
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 2018-04-23
      • 2017-03-05
      • 2019-11-17
      • 2017-04-30
      • 2017-12-30
      相关资源
      最近更新 更多