Django Elasticbeanstalk:当Debug = False时无法访问静态文件

时间:2015-10-15 04:54:36

标签: django elastic-beanstalk

当Debug = True时,我的静态文件没有问题。我已经阅读了https://docs.djangoproject.com/en/1.8/howto/static-files/deployment/上的文档,但是当Debug = False时仍然无法使其工作。这些是我的设置(当Debug = True时工作正常):

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

STATIC_URL = 'myapp/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR),"myapp","static","static-only")
STATICFILES_DIRS = (
os.path.join(os.path.dirname(BASE_DIR),"myapp","static"),                 
)

我已将配置文件编辑为:

container_commands:
   collectstatic:
      command: "myapp/manage.py collectstatic --noinput"

option_settings:
  "aws:elasticbeanstalk:application:environment":
     DJANGO_SETTINGS_MODULE: "myapp.settings"
     PYTHONPATH: "/opt/python/current/app/myapp:$PYTHONPATH"
  "aws:elasticbeanstalk:container:python":
     WSGIPath: "myapp/myapp/wsgi.py"
  "aws:elasticbeanstalk:container:python:staticfiles":
    "/static/": "myapp/static/"

我一直在敲打这个问题一段时间,所以任何帮助都会非常感激!

2 个答案:

答案 0 :(得分:0)

我没有直接回答你的问题,除了问你为什么要这样做。最佳做法是将静态文件移至S3或理想情况下,将CloudFront(或其他非AWS解决方案)移动。

使用django-storages-redux(https://github.com/jschneier/django-storages)将S3中的静态文件用于生产。 Google&#d; sjango s3 static'你会发现几个博客解释这个过程。文档为here

希望这有帮助。

答案 1 :(得分:0)

collectstatic命令会将您的所有静态文件收集到STATIC_ROOT,您已将其设置为“/ PATH / TO / myapp / static / static-only。

所以我怀疑您将静态文件指向配置文件中的错误目录。

尝试“/ static /”:“myapp / static / static-only”