当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/"
我一直在敲打这个问题一段时间,所以任何帮助都会非常感激!
答案 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”