2016-05-13 81 views
1

我有一个网站在Django 1.2.5上运行,它不包含staticfiles应用程序。在Django 1.2.5中使用静态文件应用程序的S3存储静态文件可能吗?

sudo pip install django-staticfiles 

我接着又说了staticfiles应用的settings.py:

INSTALLED_APPS += (
    'staticfiles', 

但是当我重新启动服务器得到一个502错误网关错误,并且我已经通过PIP但是安装staticfiles应用在/var/log/uwsgi/app/my-site.log以下错误:

Traceback (most recent call last): 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 248, in __call__ 
    response = self.get_response(request) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 141, in get_response 
    return self.handle_uncaught_exception(request, resolver, sys.exc_info()) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 165, in handle_uncaught_exception 
    return debug.technical_500_response(request, *exc_info) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/views/debug.py", line 59, in technical_500_response 
html = reporter.get_traceback_html() 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/views/debug.py", line 141, in get_traceback_html 
    return t.render(c) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/template/__init__.py", line 173, in render 
    return self._render(context) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/template/__init__.py", line 167, in _render 
    return self.nodelist.render(context) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/template/__init__.py", line 796, in render 
bits.append(self.render_node(node, context)) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/template/__init__.py", line 809, in render_node 
    return node.render(context) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/template/__init__.py", line 844, in render 
output = self.filter_expression.resolve(context) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/template/__init__.py", line 579, in resolve 
new_obj = func(obj, *arg_vals) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/template/defaultfilters.py", line 682, in date 
    return format(value, arg) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 281, in format 
    return df.format(format_string) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 30, in format 
pieces.append(force_unicode(getattr(self, piece)())) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 187, in r 
    return self.format('D, j M Y H:i:s O') 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 30, in format 
pieces.append(force_unicode(getattr(self, piece)())) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/encoding.py", line 66, in force_unicode 
s = unicode(s) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/functional.py", line 206, in __unicode_cast 
    return self.__func(*self.__args, **self.__kw) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 55, in ugettext 
    return real_ugettext(message) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/functional.py", line 55, in _curried 
    return _curried_func(*(args+moreargs), **dict(kwargs, **morekwargs)) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 36, in delayed_loader 
    return getattr(trans, real_name)(*args, **kwargs) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 276, in ugettext 
    return do_translate(message, 'ugettext') 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 266, in do_translate 
_default = translation(settings.LANGUAGE_CODE) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 176, in translation 
default_translation = _fetch(settings.LANGUAGE_CODE) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 159, in _fetch 
app = import_module(appname) 
File "/var/projects/my-site/env/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
__import__(name) 
ImportError: No module named staticfiles 

然而,当我从我的文件夹VIRTUALENV运行下面的命令,我可以导入staticfiles:

$ python manage.py shell 
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
(InteractiveConsole) 
>>> import staticfiles 
>>> 

从本质上讲,我试图根据此博客帖子静态文件移动到S3:

https://www.caktusgroup.com/blog/2014/11/10/Using-Amazon-S3-to-store-your-Django-sites-static-and-media-files/

是否有可能使用staticfiles应用程序在Django 1.2.5或做我有升级Django?

我宁愿不升级Django,因为我确信这会破坏网站的许多其他部分。

还有其他的选择吗?我认为有可能以某种方式使用boto?

+0

我的错误:我没有激活了我的virtualenv当我跑进口staticfiles命令。我做了'/ var/projects/my-site/env/bin/activate'然后是'python manage.py shell'然后'python manage.py shell Python 2.7.6(默认,2014年3月22日,22:59: 56) linux2上的[GCC 4.8.2] 请输入“help”,“copyright”,“credits”或“license”以获取更多信息。 (InteractiveConsole) >>>进口staticfiles 回溯(最近通话最后一个): 文件 “”,1号线,在 导入错误:没有模块名为staticfiles'。所以我假设这种在S3上存储文件的方法在Django <1.3中是不可能的? – James

+0

听起来好像你没有在virtualenv里面安装'staticfiles'。做'source/var/projects/my-site/env/bin/activate'然后'pip安装django-staticfiles'(不需要sudo)。 – Alasdair

+0

请升级Django。 1.2.5已经非常过时,自那以后出现了很多安全修复程序。 – Alasdair

回答

0

django-storage与Django 1.2.2不兼容,不幸的是。
https://github.com/jschneier/django-storages

This library is usually compatible with the currently supported versions of Django. Check the trove classifiers in setup.py to be sure.