django压缩器:使用预编译器禁用缓存

django压缩器:使用预编译器禁用缓存,django,django-compressor,Django,Django Compressor,我用它来编译scss文件。 每次修改scss文件时,django compressor都会在/static/CACHE/css/123456.css中构建一个css文件 对于pruduction模式是可以的,但当我在local上开发时,我会对我所做的每一个更改进行修订 那么,在开发模式下,如何将输出强制到具有相同名称的文件 这不是复习控制的问题 COMPRESS_PRECOMPILERS = ( ('text/x-sass', 'sass --compass "{infile}" "{o

我用它来编译scss文件。 每次修改scss文件时,django compressor都会在
/static/CACHE/css/123456.css
中构建一个css文件

对于pruduction模式是可以的,但当我在local上开发时,我会对我所做的每一个更改进行修订

那么,在开发模式下,如何将输出强制到具有相同名称的文件

这不是复习控制的问题

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

在获得静态资产的工作输出之前,您的SCSS文件仍然必须经过一个测试

在正确配置的开发环境中,您应该注意静态输出目录不与应用程序源一起定位/分发,并且生成的CSS文件将隐藏在不受版本控制的路径上的某个地方

编辑:

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


这将使引用原始的、未经研究的和正在开发的源代码成为可能,但遗憾的是,我找不到客户端SASS编译器。

缓存文件的文件名实际上基于其内容。从Django压缩机文档:

根据需要生成组合文件

如有必要,将生成该文件。所有预编译器都被称为和 执行所有筛选器,并根据内容确定哈希。 这反过来有助于确定文件名,只有当文件名 还不存在。然后返回HTML输出(并保存) 在缓存中)。就这样


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

这是可以实现的,但它需要一点定制。我有这个确切的设置工作。我在dev上使用本地dev模式,在生产(heroku)中使用脱机压缩

有关代码,请参阅本期的底部。

它并没有回答您的问题,但将/static/*或/static/CACHE/*添加到.gitignore(如果您使用的是git)不是更符合逻辑吗?当然,我会这样做。我只想禁用在我的电脑上开发期间写入大量文件。我可以看到您的代码被调用以编译SCSS文件吗?那么您的问题是写入的文件数量,还是这样做所需的时间(导致开发时页面加载缓慢)?第一个问题:“写入的文件数量”,谢谢。好的,但我的问题不是将output dir从修订控制中排除,而是在开发过程中没有编写很多文件。最好是内联一个代码snipet,以及发布到源代码的链接。这样,如果源脱机或移动,我们仍然可以得到有效的答案。谢谢