EC2 ubuntu 静态文件问题上的 Django 应用程序

标签 django ubuntu amazon-ec2

我最近在运行 Ubuntu、Python 2.7.3、django.VERSION 1.5.1 的 EC2 服务器上上传了我的应用程序。我已经设法在没有任何 CSS/Images 或 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 root root 177 Jul 26 20:21 index.html
drwxr-xr-x 3 www-data root 4096 Jul 28 04:20 static
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 中的错误(我认为它不相关,仅供引用)

[Mon Jul 29 13:41:29 2013] [error]/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] [错误] DeprecationWarning) [2013 年 7 月 29 日星期一 13:41:29] [错误] [Mon Jul 29 13:41:35 2013] [error]/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:35] [错误] DeprecationWarning) [2013 年 7 月 29 日星期一 13:41:35] [错误]

最佳答案

您的设置混淆了 STATICFILES_DIRSSTATIC_ROOT 的用途。 STATICFILES_DIRS 包含项目全局的额外静态资源。这反射(reflect)了 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

关于EC2 ubuntu 静态文件问题上的 Django 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17932260/

相关文章:

database - 重启后 Postgres 中的数据库丢失

django - 服务静态文件 Django 开发

python - 在 Ubuntu 12.04 上从 Django 1.6 升级到 1.7

linux - 我怎样才能用 yas3fs 做一份 Upstart 的工作?

ubuntu - 如何使用 oracle virtualbox 创建 64 位 Ubuntu VM?

mysql - 使用 .zip 和 .sql 将 WordPress 站点恢复到 AWS

amazon-web-services - 使用 Laravel 5.3 的 Amazon SES 403 Forbidden SignatureDoesNotMatch

python - 通过我的 Django 模型访问选择

python - 在 admin django 1.6 中注册抽象模型

Mongodb 无法启动 -> 显示奇怪的错误日志