【问题标题】:Deploying django app with static content on AWS EB在 AWS EB 上部署具有静态内容的 django 应用程序
【发布时间】:2018-04-08 12:06:53
【问题描述】:

我正在尝试按照本指南 https://realpython.com/blog/python/deploying-a-django-app-to-aws-elastic-beanstalk/ 将带有静态文件的 django 应用程序部署到 AWS EB

我有项目和应用程序设置的标准文件夹结构。我正在使用 sqlite,因此不需要在 AWS 上设置数据库。我的 python.config 文件是这样的

container_commands:
  01_collectstatic:
    command: "source /opt/python/run/venv/bin/activate && python         manage.py collectstatic --noinput"

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "myappproject.settings"
    "PYTHONPATH": "/opt/python/current/app/myappproject:$PYTHONPATH"
    "ALLOWED_HOSTS": "myappawseb.eu-central-1.elasticbeanstalk.com/"
  "aws:elasticbeanstalk:container:python":
    WSGIPath: "myappproject/wsgi.py"
    NumProcesses: 3
    NumThreads: 20
  "aws:elasticbeanstalk:container:python:staticfiles":
"/static/": "www/static/"

我之前做过 pip freeze 并将我的 requirements.txt 文件放在项目文件夹中。

一切都在 localhost 上按计划进行。 eb 部署后,我的静态文件将无法正确加载。在我的 settings.py 中,我定义了 STATIC_URL 和 STATIC_ROOT:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "..", "www", "static")

我的 eb 错误日志如下所示:

[Fri Oct 27 14:02:35.716529 2017] [:error] [pid 4533]     for pattern in self.url_patterns: 
[Fri Oct 27 14:02:35.716531 2017] [:error] [pid 4533]   File "/opt/python/run/venv/lib/python3.4/site-packages/django/utils/functional.py", line 35, in __get__ 
[Fri Oct 27 14:02:35.716533 2017] [:error] [pid 4533]     res = instance.__dict__[self.name] = self.func(instance) 
[Fri Oct 27 14:02:35.716534 2017] [:error] [pid 4533]   File "/opt/python/run/venv/lib/python3.4/site-packages/django/urls/resolvers.py", line 405, in url_patterns 
[Fri Oct 27 14:02:35.716536 2017] [:error] [pid 4533]     patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) [Fri Oct 27 14:02:35.716546 2017] [:error] [pid 4533]   File "/opt/python/run/venv/lib/python3.4/site-packages/django/utils/functional.py", line 35, in __get__ [Fri Oct 27 14:02:35.716553 2017] [:error] [pid 4533]     res = instance.__dict__[self.name] = self.func(instance) [Fri Oct 27 14:02:35.716554 2017] [:error] [pid 4533]   File "/opt/python/run/venv/lib/python3.4/site-packages/django/urls/resolvers.py", line 398, in urlconf_module 
[Fri Oct 27 14:02:35.716556 2017] [:error] [pid 4533]     return import_module(self.urlconf_name) 
[Fri Oct 27 14:02:35.716558 2017] [:error] [pid 4533]   File "/opt/python/run/baselinenv/lib64/python3.4/importlib/__init__.py", line 109, in import_module 
[Fri Oct 27 14:02:35.716560 2017] [:error] [pid 4533]     return _bootstrap._gcd_import(name[level:], package, level) 
[Fri Oct 27 14:02:35.716562 2017] [:error] [pid 4533]   File "<frozen importlib._bootstrap>", line 2254, in _gcd_import 
[Fri Oct 27 14:02:35.716563 2017] [:error] [pid 4533]   File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
[Fri Oct 27 14:02:35.716565 2017] [:error] [pid 4533]   File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
[Fri Oct 27 14:02:35.716567 2017] [:error] [pid 4533]   File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 
[Fri Oct 27 14:02:35.716568 2017] [:error] [pid 4533]   File "<frozen importlib._bootstrap>", line 1129, in _exec 
[Fri Oct 27 14:02:35.716570 2017] [:error] [pid 4533]   File "<frozen importlib._bootstrap>", line 1471, in exec_module 
[Fri Oct 27 14:02:35.716572 2017] [:error] [pid 4533]   File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed

【问题讨论】:

    标签: django amazon-web-services amazon-elastic-beanstalk


    【解决方案1】:

    最终修复它的是将我在 settings.py 中的静态根更改为

    STATIC_ROOT = os.path.join(BASE_DIR, "static")
    

    【讨论】:

      猜你喜欢
      • 2019-06-19
      • 2021-10-18
      • 2018-05-29
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 2019-12-21
      • 2016-08-26
      相关资源
      最近更新 更多