4

我正在使用django-compressor来编译 scss 文件。每次我修改 scss 文件时,django-compressor 都会在/static/CACHE/css/123456.css.

可以使用 pruduction 模式,但是当我在本地开发时,我对我所做的每一个更改都有一个修订。

那么,在开发模式下,如何强制输出到同名文件?

这不是修订控制的问题...

COMPRESS_PRECOMPILERS = (
    ('text/x-sass', 'sass --compass "{infile}" "{outfile}"'),
    ('text/x-scss', 'sass --scss --compass "{infile}" "{outfile}"'),
)
4

3 回答 3

0

在获得静态资产的工作输出之前,您的 SCSS 文件仍需通过匹配的预编译器。

在正确配置的开发环境中,您会尊重静态输出目录不会与您的应用程序源一起定位/分发,并且生成的 CSS 文件将被隐藏在不受修订控制的路径上的某个位置。

编辑:

对,所以我错过了正确的问题。唯一的解决方案是在开发中禁用压缩器,包括清除预编译器 MIME 映射,并有条件地将客户端编译器包含在主模板中。

这样可以在开发中引用原始的、未编写的LESSCoffeeScript源,但遗憾的是我找不到客户端 SASS 编译器。

于 2013-05-30T07:43:14.240 回答
0

缓存文件的文件名实际上是基于它的内容。来自 Django Compressor 文档:

如果需要,生成组合文件

如有必要,将生成该文件。调用所有预编译器并执行所有过滤器,并根据内容确定哈希。这反过来又有助于确定文件名,该文件名仅在它不存在时才被保存。然后返回 HTML 输出(并保存在缓存中)。就是这样!

http://django-compressor.readthedocs.org/en/latest/behind-the-scenes/#third-step-generating-the-combined-file-if-needed

我认为没有任何方法可以让 Django Compressor 使用指定的名称而不更改代码。

于 2013-05-30T08:24:08.243 回答
0

这可以实现,但它涉及一些定制。我有这个确切的设置工作。我在开发和生产(heroku)离线压缩中使用本地开发模式。

有关代码,请参阅此问题的底部。 https://github.com/django-compressor/django-compressor/issues/226

于 2015-06-22T14:11:32.727 回答