【问题标题】:Django app on EC2 ubuntu Static File issueEC2 ubuntu 静态文件问题上的 Django 应用程序
【发布时间】:2013-07-29 17:28:54
【问题描述】:

我最近在运行 Ubuntu、Python 2.7.3、django.VERSION 1.5.1 的 EC2 服务器上上传了我的应用程序。我设法在没有任何 CSS/图像或 JS 的情况下成功启动它。我可以查看模板并导航它们意味着模板目录设置正在运行。 看起来我缺少一些静态/媒体文件的设置。 谁能给点建议?

“cat /etc/apache2/httpd.conf”的内容

WSGIScriptAlias / /home/ubuntu/site/ProjectName/ProjectName/wsgi.py
WSGIPythonPath /home/ubuntu/site/ProjectName

<Directory /home/ubuntu/site/ProjectName/ProjectName>
<Files wsgi.py> 
Order deny,allow
Allow from all
</Files>
</Directory>

settings.py 的内容

MEDIA_ROOT = '/var/www/media/'
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/var/www/static/admin/'
STATICFILES_DIRS = (
    '/var/www/static',
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

TEMPLATE_DIRS = ('/var/www/templates',)


**$ ls -ltr /var/www**

共 16 个
-rw-r--r-- 1 根根 177 Jul 26 20:21 index.html
drwxr-xr-x 3 www-data root 4096 Jul 28 04:20 静态
drwxr-xr-x 5 www-data root 4096 Jul 28 04:20 media
drwxr-xr-x 20 www-data root 4096 Jul 28 16:29 模板

apache2/access.log 中的错误

[29/Jul/2013:13:41:36 -0500] “GET /static/neatadmin/css/bootstrap.css HTTP/1.1”404 1798 [29/Jul/2013:13:41:36 -0500]“GET /static/neatadmin/css/jquery.fancybox.css HTTP/1.1”404 1806 [29/Jul/2013:13:41:36 -0500]“GET /static/neatadmin/js/jquery.js HTTP/1.1”404 1798 [29/Jul/2013:13:41:36 -0500]“GET /static/neatadmin/js/jquery.metadata.js HTTP/1.1”404 1804 [29/Jul/2013:13:41:36 -0500]“GET /static/neatadmin/css/login.css HTTP/1.1”404 1794 [29/Jul/2013:13:41:36 -0500]“GET /static/neatadmin/js/error.js HTTP/1.1”404 1794

apache2/error.log 中的错误(我认为这无关紧要,仅供参考)

[2013 年 7 月 29 日星期一 13:41:29] [错误] /usr/local/lib/python2.7/dist-packages/django/conf/init.py:221: DeprecationWarning :您没有在“mail_admins”日志记录处理程序上定义过滤器:添加隐式 debug-false-only 过滤器。见http://docs.djangoproject.com/en/dev/releases/1.4/#request-exceptions-are-now-always-logged [2013 年 7 月 29 日星期一 13:41:29] [错误] 弃用警告) [2013 年 7 月 29 日星期一 13:41:29] [错误] [2013 年 7 月 29 日星期一 13:41:35] [错误] /usr/local/lib/python2.7/dist-packages/django/conf/init.py:221: DeprecationWarning: You have 'mail_admins' 日志处理程序上没有定义过滤器:添加隐式 debug-false-only 过滤器。见http://docs.djangoproject.com/en/dev/releases/1.4/#request-exceptions-are-now-always-logged [2013 年 7 月 29 日星期一 13:41:35] [错误] 弃用警告) [2013 年 7 月 29 日星期一 13:41:35] [错误]

【问题讨论】:

    标签: django ubuntu amazon-ec2


    【解决方案1】:

    您的设置混淆了STATICFILES_DIRSSTATIC_ROOT 的用途。 STATICFILES_DIRS 包含额外的静态资源,这些资源对您的项目是全局的。这反映了TEMPLATE_DIRS 设置。该目录将包含在您的源存储库中。

    STATIC_ROOT 是用于在生产中提供静态文件的收集点。当您运行collectstatic 时,所有已安装应用程序和STATICFILES_DIRS 的文件都会复制到此处。这不需要为本地开发设置。该目录不会包含在 repo 中,因为它只包含生成的内容。您的网络服务器配置应该有一个别名以将 STATIC_ROOT 服务为 STATIC_URL 对于使用 Apache 的示例,您应该查看文档 https://docs.djangoproject.com/en/stable/howto/deployment/wsgi/modwsgi/#serving-files

    【讨论】:

    • 非常感谢马克,我能够按照文档进行操作,并且能够通过更新 httpd.conf 来解决问题
    猜你喜欢
    • 2020-12-05
    • 2020-11-06
    • 2011-07-20
    • 2016-11-13
    • 2021-09-08
    • 2019-12-21
    • 2016-11-24
    • 1970-01-01
    • 2011-06-11
    相关资源
    最近更新 更多