【问题标题】:Django: Static files not working in production environmentDjango:静态文件在生产环境中不起作用
【发布时间】:2015-11-26 14:01:50
【问题描述】:

我尝试了所有在生产环境中部署静态文件的方法,但仍然没有出现静态文件。不知道怎么回事。

请帮助我部署静态文件(如 css、javascript、图像等)。

我尝试过使用来自许多来源的许多不同方法。但都是徒劳的

有什么简单的方法或者你能解释一下传统的方法吗?你能解释一下你遵循的步骤吗?

【问题讨论】:

  • 堆栈溢出不是您的博客条目的正确位置。
  • 另外,settings.py 中有一个巨大的警告 ...# SECURITY WARNING: don't run with debug turned on in production!" 所以你的第 2 步还是应该完成
  • 这不是我的博客。至少你应该检查一下这个:)。我在这件事上感到困难。只是与人们分享,让他们也很容易......
  • 但这意味着他们也有问题,在这种情况下,他们将能够编写自己的问题。大概说明了为什么collectstatic 对他们不起作用
  • 我知道保持 Debug = False。只是为可能忘记这样做的新手提一下:)。

标签: django apache deployment production-environment static-files


【解决方案1】:

最后我找到了一种在生产环境中部署静态文件的简单方法。因此回答我自己的问题。
对于像我这样在这种情况下感到无助的新手,请参阅:-

https://github.com/kennethreitz/dj-static

第一步:在终端中使用以下命令安装它

$ sudo pip install dj-static


这是一个简单的 Django 中间件实用程序,可让您使用 Gunicorn 等 WSGI 服务器正确地从生产中提供静态资产。


第二步:- 设置好了

#In settings.py file (to set production environment.)
Debug= False


第 3 步:- 在 settings.py 中配置您的静态资产:

#add your path to STATIC_ROOT

STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'


第四步:- 并复制下面写的行并将它们添加到 wsgi.py
不要删除任何其他行。只需添加这些

from django.core.wsgi import get_wsgi_application
from dj_static import Cling

application = Cling(get_wsgi_application())


它完成了。现在测试一下。


注意: 仅使用 Apache(2.4) 作为 Web 服务器。没有别的东西支持apache。

希望这对其他人也有帮助。 如果您有更多方法或传统方法的简化版本,请分享。

【讨论】:

    猜你喜欢
    • 2014-10-13
    • 2018-09-18
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 2019-12-10
    • 1970-01-01
    相关资源
    最近更新 更多