在 AWS Django 应用程序上提供静态文件

Serving Static files on AWS Django application

我知道这不是第一次有人问这个问题,所以我先道歉。我已经为此工作了几天,但仍然不知道如何进行。

我按照本教程学习了发球台:https://aws.amazon.com/getting-started/hands-on/deploy-python-application/

网站已启动 运行,但当然不会加载静态文件。

这就是我所在的位置。在 settings.py 中,我将 STATIC_ROOT 和 STATIC_URL 设置为以下内容:

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

我运行 collectstatic 并将我所有的静态文件收集到mysite 应用程序目录中。它看起来像这样:

-mysite
 - mysite (app)
   - static
     - base
       - base.css
   - settings.py
   - urls.py
   - wsgi.py

不幸的是,网站上的静态文件仍然无法加载。

这是我的问题:

  1. 假设我想在网络上查看 base.css 文本文件。我会去 www.mysite.com/static/base/base.css 吗?如果不是,URL 会是什么?如果是,为什么在当前设置下它没有出现?

  2. 根据 AWS 教程,我 运行 编辑了 httpd-app.conf 文件以包含以下内容

    Alias /mysite/static /opt/bitnami/apps/django/lib/python3.7/site-packages/Django-2.2.9-py3.7.egg/django/contrib/admin/static

编辑的目的是什么?它如何影响静态文件在网站上的服务方式?

你们在加载这些静态文件方面提供的任何帮助都将成为救命稻草。

您的 urls.py 文件需要配置为服务于您的 STATIC_URL

urls.py

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

More on serving static files with Django