首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Django 1.2.5中使用静态文件应用程序的S3存储静态文件是可能的吗?

在Django 1.2.5中使用静态文件应用程序的S3存储静态文件是可能的吗?
EN

Stack Overflow用户
提问于 2016-05-13 22:17:04
回答 1查看 101关注 0票数 1

我有一个运行在Django 1.2.5上的网站,其中不包括staticfiles应用程序。但是,我已经通过pip安装了staticfiles应用程序:

代码语言:javascript
复制
sudo pip install django-staticfiles

然后,我将staticfiles应用程序添加到settings.py:

代码语言:javascript
复制
INSTALLED_APPS += (
    'staticfiles',

但是,当我重新启动服务器时,在/var/log/uwsgi/app/my-site.log中出现502 Bad Gateway错误和以下错误:

代码语言:javascript
复制
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文件夹运行以下命令时,我可以导入静态文件:

代码语言:javascript
复制
$ 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/

是否可以使用Django 1.2.5中的staticfiles应用程序,或者我必须升级Django吗?

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

还有其他选择吗?我想可以用boto来代替吧?

EN

回答 1

Stack Overflow用户

发布于 2017-01-02 08:29:44

不幸的是,django-storage与Django 1.2.2不兼容。

根据https://github.com/jschneier/django-storages的说法

这个库通常与当前支持的Django版本兼容。检查setup.py中的trove分类器以确保。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37212385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档