我有一个网站在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:
是否有可能使用staticfiles应用程序在Django 1.2.5或做我有升级Django?
我宁愿不升级Django,因为我确信这会破坏网站的许多其他部分。
还有其他的选择吗?我认为有可能以某种方式使用boto?
我的错误:我没有激活了我的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
听起来好像你没有在virtualenv里面安装'staticfiles'。做'source/var/projects/my-site/env/bin/activate'然后'pip安装django-staticfiles'(不需要sudo)。 – Alasdair
请升级Django。 1.2.5已经非常过时,自那以后出现了很多安全修复程序。 – Alasdair