【发布时间】:2020-11-21 00:30:33
【问题描述】:
在尝试了多个教程并阅读了 StackOverflow 2 天后,我正在寻求帮助!
设置: 开发版在 AWS Lightsail 服务器上运行顺畅。在生产部署期间,我遇到了静态文件的持续问题。该应用程序在指定的子域上运行,但缺少所有 JS/CSS/images/...
我遵循了官方文档,但无济于事。 1/https://docs.bitnami.com/aws/infrastructure/django/get-started/deploy-django-project/ 2/https://docs.bitnami.com/aws/infrastructure/django/get-started/deploy-django-project/
包含相关文件的我的文件夹树:
Project
- conf
- httpd-app.conf
- httpd-prefix.conf
- Django2Tutorial
- settings.py
- wsgi.py
- Solar
- static
- static (after running collectstatic function in terminal,-it includes the admin, Solar statics)
我的设置:
STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATIC_URL = '/static/'
DEBUG = False
ALLOWED_HOSTS = ['54.169.172.***']
wsgi.py 文件
import os
import sys
sys.path.append('/opt/bitnami/apps/django/django_projects/Project')
os.environ.setdefault("PYTHON_EGG_CACHE", "/opt/bitnami/apps/django/django_projects/Project/egg_cache")
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoTutorial2.settings')
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
我的配置文件:
1. httpd-app.conf 文件
<IfDefine !IS_DJANGOSTACK_LOADED>
Define IS_DJANGOSTACK_LOADED
WSGIDaemonProcess wsgi-djangostack processes=2 threads=15 display-name=%{GROUP}
</IfDefine>
<Directory "/opt/bitnami/apps/django/django_projects/Project/DjangoTutorial2">
Options +MultiViews
AllowOverride All
<IfVersion >= 2.3>
Require all granted
</IfVersion>
WSGIProcessGroup wsgi-djangostack
WSGIApplicationGroup %{GLOBAL}
</Directory>
Alias /static "/opt/bitnami/apps/django/django_projects/Project/static"
<Directory "/opt/bitnami/apps/django/django_projects/Project/static">
Require all granted
</Directory>
WSGIScriptAlias / '/opt/bitnami/apps/django/django_projects/Project/DjangoTutorial2/wsgi.py'
2。 httpd-prefix.conf 文件
# Include file
RewriteEngine On
RewriteCond "%{HTTP_HOST}" ^ec2-([0-9]{1,3})-([0-9]{1,3})-([0-9]{1,3})-([0-9]{1,3})\..*\.amazonaws.com(:[0-9]*)?$
RewriteRule "^/?(.*)" "%{REQUEST_SCHEME}://%1.%2.%3.%4%5/$1" [L,R=302,NE]
Include "/opt/bitnami/apps/django/django_projects/Project/conf/httpd-app.conf"
其他调整:(/opt/bitnami/apache2/conf/bitnami) 1/ bitnami-apps-prefix.conf 文件
Include "/opt/bitnami/apps/django/django_projects/Project/conf/httpd-prefix.conf"
2/bitnami.conf 文件
VirtualHost _default_:80>
WSGIScriptAlias / /opt/bitnami/apps/django/django_projects/Project/DjangoTutorial2/wsgi.py
<Directory /opt/bitnami/apps/django/django_projects/Project>
AllowOverride all
Require all granted
Options FollowSymlinks
</Directory>
DocumentRoot /opt/bitnami/apps/django/django_projects/Project
</VirtualHost>
- bitnami-apps-vhosts.conf 文件为空?可以吗?
也检查了:
- 多次重启 Apache
- 玩弄了 static_url 和 static_roots
任何人都可以建议如何进行吗?这两天实在是太郁闷了哈哈。
注意,也许这会有所帮助: 仔细检查 findstatic 功能,它将我重定向到 Solar/static 文件夹。我想既然我跑了收集静态,我应该指向 apache conf 中的项目级静态文件夹而不是太阳能级静态文件夹。
【问题讨论】:
-
打开一个已知的静态 URL,告诉我们浏览器和 apache 日志显示的错误
-
@VictorE: 错误 404。如果我尝试打开其中一张图片,它会显示我的自定义 error404 页面
-
向我们展示 /var/log/apache2/error.log 中的错误(或者您的服务器的错误日志是什么。这应该告诉您它如何将请求映射到您目录中的文件
-
您需要将“别名/static/ /opt/bitnami/apps/django/django_projects/Project/static/”添加到您的虚拟主机配置中
-
顺便说一句,只是记住了 Apache,在 access.log 中记录了 404 错误。你能检查那个文件吗?
标签: django deployment django-staticfiles amazon-lightsail