我最近将我的应用程序上传到了运行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个根目录177 Jul 26 20:21 index.html
drwxr-xr-x 3 www-data根4096 Jul 28 04:20静态
drwxr-xr-x 5 www-data根4096 Jul 28 04:20媒体
drwxr-xr-x 20 www-data根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:弃用警告:您在'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:弃用警告:您在'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保留了项目中全局的其他静态资源。这反映了TEMPLATE_DIRS设置。该目录将包含在您的源存储库中。

STATIC_ROOT是用于在生产环境中提供静态文件的收集点。运行STATICFILES_DIRS时,所有已安装的应用程序和collectstatic中的文件都将复制到此处。无需为本地开发设置此设置。此目录将不包含在存储库中,因为它仅包含生成的内容。您的网络服务器配置应具有别名,以将STATIC_ROOT用作STATIC_URL。有关使用Apache的示例,您应参阅文档https://docs.djangoproject.com/en/stable/howto/deployment/wsgi/modwsgi/#serving-files

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

10-12 21:24