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

时间:2013-07-29 19:10:20

标签: django ubuntu amazon-ec2

我最近在运行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 root root 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 7月28日04:20媒体
drwxr-xr-x 20 www-data root 4096 Jul 28 16:29 templates

apache2 / access.log中的错误

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

apache2 / error.log中的错误(我认为这不是相关的,只是仅供参考)

[Mon Jul 29 13:41:29 2013] [错误] /usr/local/lib/python2.7/dist-packages/django/conf/init.py:221:弃用警告:您没有在&#39; mail_admins&#39;上定义过滤器。 logging handler:添加隐式的debug-false-only过滤器。见http://docs.djangoproject.com/en/dev/releases/1.4/#request-exceptions-are-now-always-logged [Mon Jul 29 13:41:29 2013] [错误]弃用警告) [Mon Jul 29 13:41:29 2013] [错误] [2013年7月29日星期三13:41:35] [错误] /usr/local/lib/python2.7/dist-packages/django/conf/init.py:221:DreprecationWarning:你有没有在&#39; mail_admins&#39;上定义的过滤器logging handler:添加隐式的debug-false-only过滤器。见http://docs.djangoproject.com/en/dev/releases/1.4/#request-exceptions-are-now-always-logged [Mon Jul 29 13:41:35 2013] [错误]弃用警告) [2013年7月29日13:41:35] [错误]

1 个答案:

答案 0 :(得分:1)

您的设置会混淆STATICFILES_DIRSSTATIC_ROOT的目的。 STATICFILES_DIRS包含项目的全局静态资源。这反映了TEMPLATE_DIRS设置。该目录将包含在源存储库中。

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