我最近在digitalocean上部署了一个django项目。这个项目有一些django应用程序,并实现了用于子域配置的django-hosts。虽然本地运行良好,但部署到digitalocean后导航到子域时无法找到静态文件。
网站的所有其他部分都有适当的风格。
问:
1.我能做些什么来纠正这个异常吗?
1.有没有其他方法可以做到这一点,而不必使用django-hosts。
**这里是网站:**kingdomleadsafrica.org
**子域名为:**executives.kingdomleadsafrica.org
谢啦,谢啦
2条答案
按热度按时间cedebl8k1#
检查静态文件配置:验证您的静态文件在Django设置中配置正确。确保正确设置了STATIC_URL和STATIC_ROOT。
在你的settings.py中,你应该有这样的东西:
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR,'static')STATIC_URL是在模板中提供静态文件的URL,STATIC_ROOT是运行collectstatic时复制静态文件的目录。
运行collectstatic:在生产环境中,您需要运行collectstatic管理命令来收集应用中的所有静态文件,并将它们放置在STATIC_ROOT指定的目录中。请确保在部署应用程序的新版本时运行此命令。
运行以下命令:
python manage.py collectstatic检查文件权限:确保运行Django应用程序的Web服务器具有访问静态文件的必要权限。验证运行服务器的用户对静态文件和目录具有读取权限。
检查是否存在静态文件:运行collectstatic后,检查静态文件是否已复制到STATIC_ROOT指定的目录。确保静态文件存在且可访问。
测试静态URL:检查您是否可以通过在浏览器中访问静态文件的URL来直接访问它们。例如,如果STATIC_URL设置为/static/,则尝试访问像https://gwtc.tech/static/blog_app/style.csshttps://gwtc.tech/static/blog_app/revolution/css/layers.css这样的静态文件
检查浏览器控制台中的错误:打开浏览器的开发人员控制台,检查与加载静态文件相关的任何错误。查找404错误或其他问题。
检查服务器日志:检查服务器日志中与静态文件相关的任何错误消息。在许多生产环境中,服务器日志位于/var/log目录中。查找与提供静态文件相关的任何错误。
检查Web服务器配置:如果你使用Nginx或Apache这样的Web服务器来服务你的Django应用程序,请确保Web服务器配置设置为正确处理静态文件。检查Web服务器的配置文件中是否存在任何错误配置。
通过遵循这些步骤,您应该能够识别和调试静态文件在部署到生产环境时无法在Django应用程序中工作的问题。常见问题与配置错误、文件权限或Web服务器设置有关。一旦您确定了问题,您就可以采取适当的步骤来修复它,并使静态文件按预期工作。
nhn9ugyo2#
在生产环境中使用django创建一个子域是简单而直接的。
B:你不需要任何插件,比如django-hosts或django-subdomain来实现这一点。
我所做的是把我的项目分成两个不同的项目,给它们起不同的名字。
我把这两个项目放在同一个projectdir中,就像在使用nginx和gunicorn将单个项目部署到digitalocean时推荐的那样。
我为每个项目创建了gunicorn.sock和gunicorn.service,将gunicorn更改为项目的名称,例如,如果我的项目名称是博客和论坛,我将为博客创建blog.sock和blog.service,并为其他项目创建相应的名称。
同样的事情也会发生在nginx上。你把你想要的域名放在nginx的服务器部分。
确保正确填写目录,尤其是gunicorn.service(在本例中是blog.service和其他)。
此外,如果您想运行任何与gunicorn相关的命令,您将需要您的服务文件的名称。
请记住在您的settings.py中包含您的子域,并在您的digitalocean中将其创建为A记录
祝你好运