【问题标题】:using browser-sync with django on docker-compose在 docker-compose 上使用浏览器同步与 django
【发布时间】:2018-03-26 01:22:17
【问题描述】:

我正在为大学做一个项目,我以前从未使用过 docker,我通常在处理静态文件时使用 browser-sync,但现在当我在 docker-compose 上使用 Django 时(我关注 THIS教程),我不知道如何设置它,有人可以给我建议或指导我吗?

【问题讨论】:

    标签: django docker-compose browser-sync


    【解决方案1】:

    所以,我找到了解决方案,
    首先按照教程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
    

    文件应该是这样的(如果你按照教程一步一步来,你可以根据你要使用的db来改变)

     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) 正在运行

    我希望这会有所帮助!

    【讨论】:

    • 这看起来不错!将在 tailwindcss 项目中对此进行测试
    猜你喜欢
    • 2020-12-19
    • 2017-08-11
    • 2017-04-26
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    • 2020-03-06
    相关资源
    最近更新 更多