在docker-compose上使用与django的browser-sync

问题描述 投票:0回答:1

我正在为大学做一个项目,之前从未使用过docker,我在处理静态文件时通常使用浏览器同步,但现在当我在docker-compose上使用Django时(我遵循THIS教程),我有不知道如何设置工作,任何人都可以给我建议或指导我吗?

django docker-compose browser-sync
1个回答
0
投票

所以,我找到了一个解决方案, 首先按照教程here用docker-compose设置django,到最后你应该有一个工作基础django项目。然后按照以下步骤操作。

如何使用“livereload”与“docker-compose”: 在您的主机上,打开命令行或终端并执行:

pip install --upgrade pip
pip install django-livereload-server
pip install psycopg2-binary

PS:我在docker-compose中使用psycopg2这就是为什么我要安装它,如果你正在使用别的东西,安装它而不是psycopg2

现在添加到requirements.txt文件(来自教程)这一行

 django-livereload-server

该文件应如下所示(如果您一步一步地按照教程,您可以根据您要使用的数据库进行更改)

 Django==2.0
 psycopg2-binary
 django-livereload-server

打开终端,cd到你的项目目录,然后执行:

docker-compose build 

将新的django-livereload下载到docker环境。 现在,你已经安装了所有东西, 你需要设置你的项目来使用django-livereload-server模块, 在项目的settings.py中,将livereload添加到INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    'livereload',
    ...
]

并将livereload中间件添加到MIDDLEWARE:

MIDDLEWARE = [
    ...
    'livereload.middleware.LiveReloadScript',
]

并确保将DEBUG设置为True。

现在你可以开始开发, 在项目目录中打开2个控制台(终端)

在第一个做:

python manage.py livereload

等到服务器启动,当它正常工作时,保持运行,并在第二个终端执行:

docker-compose up 

第二个终端中的服务器正在运行django开发服务器,第一个终端中的服务器正在向第一个服务器提供一个livereload.js文件,该文件由django-livereload-server模块用于注入css,自动重新加载html和保存时的js,等等

PS:确保第一台服务器(livereload)在启动第二台服务器之前正常工作

我希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.