【问题标题】:How to serve Django static files during development without having to run "collectstatic"?如何在开发过程中提供 Django 静态文件而无需运行“collectstatic”?
【发布时间】:2020-02-13 15:00:36
【问题描述】:

我有一个 Django 2.2.6 版应用程序,我的 Django 静态文件是从一个单独的专用文件服务器提供的。每当其中一个文件发生更改时,我都会使用 Django“collectstatic”命令更新文件服务器上的静态文件。我还使用了 django-pipeline 包,这样每个静态文件的文件名中都包含一个特殊的字符串。如果我更新了该文件,这可以防止我的用户的浏览器从缓存中加载静态文件。此配置完美运行。

我现在正处于一个阶段,我不断更改我的 CSS 文件以创建我的网站的新外观和感觉,并且在每次小的更改后必须记住运行 collectstatic 命令是一件很痛苦的事制作。有没有一种方法可以在我进行开发时暂时“切换”这个 collectstatic 配置,这样我就不必经常运行 collectstatic 命令?我似乎记得有一种方法可以更改主 urls.py 文件并设置 DEBUG = True 在 Django 1.8 中执行类似的操作,但我没有在最新的 Django 文档中看到它。目前这样做的“最佳做法”是什么?

【问题讨论】:

    标签: django


    【解决方案1】:

    我认为它仍然在文档中。

    https://docs.djangoproject.com/en/2.2/howto/static-files/#serving-static-files-during-development

    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)
    

    【讨论】:

    • 还是我误会了你的问题?
    • 我认为您没有误解我的问题,但您展示的技术(来自文档)将不起作用。该文件说它只有在 STATIC_URL 是本地的而不是 URL 时才有效。由于我的静态文件位于另一台服务器上,因此该值是一个 URL,它不是本地的。
    • 除非有办法配置 Django 设置(可能还有 urls.py 文件)以启用我正在尝试做的事情,否则最简单的解决方法就是将有问题的 CSS 文件放在文件服务器上相应的静态文件目录。
    猜你喜欢
    • 2015-05-17
    • 2012-03-25
    • 2012-06-04
    • 2014-03-13
    • 1970-01-01
    • 2012-01-26
    • 2013-12-22
    • 2015-08-06
    • 1970-01-01
    相关资源
    最近更新 更多