问题标签 [django-compressor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
212 浏览

sass - SASS 文字字符串

我使用 Django 与 django-compressor 和 pySCSS 将 SASS 编译为常规 CSS。

在 django-compressor 中有一个过滤器可以将变量转换{{ STATIC_URL }}为实际值。不幸的是,它在 SASS 预编译器之后运行。

当我在.sass文件中输入该文字时,它会在大括号之间插入空格:

变成

有没有办法将文字字符串插入 SASS 源文件?或者一种逃避花括号的方法,这样它们就不会被改变?

0 投票
0 回答
253 浏览

django - 带有 s3 和 sass 的 django-compressor

我正在使用 AWS EC2 为我的 Django 应用程序提供服务,该应用程序又使用 django-compressor 来压缩 js 和 css 文件,并使用 S3 作为 STATIC_ROOT。

我也在使用 SASS 和 django-compressor,所以它应该编译和压缩 SCSS 文件。但是,当我执行命令时,python manage.py compress --force我可以看到有一个错误 -

似乎不是理解输入文件路径是https://bucket.s3.amazonaws.com/etc ...它试图解析相对路径..

我已经使用了CssAbsoluteFilter推荐的方法,但我很沮丧,因为这是一种奇怪的行为。

当然,DEBUG=FalseCOMPRESS_ENABLED=True

有什么帮助吗?

0 投票
2 回答
6923 浏览

python - Django Compressor 不会缩小文件

我试图让 django-compressor 与夹层一起工作。对于第一次尝试,我只是安装了 django 压缩器(应该为 Mezzanine 做)并更改 DEBUG = False 但从 Django 生成的 HTML 没有任何变化。所以我遵循了 django 压缩器的文档并修改了我的 settings.py:

这些是安装在我的环境中的软件包:

在这里,我如何在模板中使用压缩器:

在我启动之前什么都没有发生:

python manage.py 压缩 --force

所以现在我已经填充了缓存,并且从 Django 生成的 HTML 指向 CACHE 中的文件,例如:

但是文件没有被缩小,django 压缩器只是复制它们并更改了名称。你知道为什么压缩机不缩小它们吗?

0 投票
1 回答
136 浏览

javascript - 在 Django 中使用 JS 压缩器处理浏览器条件 JS

本质上,一个相当简单的问题。像大多数必须支持旧浏览器的网站一样,我们有一堆条件加载 JS 脚本:

我们有很多 JS 依赖项,我们的计划是压缩这些依赖django-compressor项以减少查询负载,并改进在 Javascript 更改时重新加载依赖项(避免浏览器缓存问题)。

真正的问题是,如果您需要按顺序进行级联加载(即 JQ-UI 之前的 Jquery 等,并且某些组件是有条件的(D3 与 r2d3),您是否只需压缩尽可能多的无条件的,还是有更聪明的方法?

0 投票
2 回答
617 浏览

django - 使用 django-compressor 和 AWS CloudFront 时出错

我已经在 Django 1.6 中成功使用django-compressordjango-storages管理了我的静态文件的压缩和部署。我现在正在尝试使用 AWS CloudFront 来提供我的静态文件。

我按照这里的说明进行操作,default_storage.exists 非常慢并且经常超时,我的settings.py文件如下所示:

但我收到以下错误:

我是否需要将 COMPRESS_URL 指向 CloudFront?

0 投票
0 回答
729 浏览

django - Django Compressor:缓存搞砸了

我有一个使用 django-compressor 的 webapp,用于 js、css 和更少的缩小。

我正在使用COMPRESS_OFFLINE = True,因为我正在使用 django 压缩器来构建一个包含导入其他文件的 less 文件(否则,如果在 core.less 中进行更改,django 压缩器不会重建文件):

我遇到了以下问题:我有以下 .css 文件assets/CACHE/css

它们都对应于我的 core.less 文件的修改。问题是当我登录我的 webapp 时,似乎 Django-Compress {%compress%} 使用了所有这些文件,而不仅仅是最后一个。所以有时我有好的设计,如果我刷新我会得到旧的......

每次我刷新文件更改时......所以我假设有一些与 django 压缩缓存相关的东西,但我真的不知道如何解决这个问题......

如果你们有想法,请随时帮助我。

0 投票
1 回答
707 浏览

css - 使用 django_compressor 压缩 sass 问题

我在使用集成sass时遇到问题Djangodjango_compressor

以下是导致的错误:

从模板中,这会导致上面的错误 -

有趣的是,如果我使用内联 sass 样式,压缩会起作用,这让我想知道这个问题是否与我如何链接资源有关。

内联作品-

这里似乎有什么问题?

这些是我的设置 -

我认为问题是我不确定如何设置值href?我想使用{{ static <foo> }},但它返回相同的错误。我知道要包含您需要使用的变量COMPRESS_OFFLINE_CONTEXT,但不知道该怎么做。

0 投票
1 回答
97 浏览

django - 使用 django-compressor 进行离线压缩时,如何使用 CDN 添加对多个部署阶段(prod、qa、test)的支持?

我有一个非常简单的 django 应用程序设置,它被打包在 jenkins 中,它使用 django-compressor 运行离线压缩,运行集成测试,然后部署到 QA 服务器。后来我会有一份工作,它使用相同的包部署在我们的产品服务器上。

这一切都很好,只要资源路径在所有三个阶段都相同 - 但我现在想为静态资源添加一个 CDN,它只是代理 prod 服务器上的请求,这意味着我需要另一个 URL 前缀(MEDIA_URL)用于生产。目前,当我只是更改我的包装以将 MEDIA_URL 指向 CDN 时,我的集成测试失败并且 QA 服务器已损坏,因为 CDN 代理了生产服务器。所以我想继续使用相对的非前缀路径进行集成并自定义带有远程 URL 的压缩媒体文件的 URL 前缀。

有什么理智的方法可以做到这一点吗?对于我的集成测试,我可以想象我只是创建一个 /etc/hosts 条目以将 CDN 主机名指向测试服务器,但这似乎是一个丑陋的解决方法。

0 投票
0 回答
534 浏览

django - django 压缩器响应时间较慢

我正在尝试使用带有和不带有 django 压缩器的 django 应用程序的页面加载时间 chrome 扩展来测量响应(通过将 COMPRESS_ENABLED 设置为 True/False)。我确实清除了浏览器缓存、关闭/启动 VM,以确保每个测试都具有相同且新鲜的条件。我还在浏览器上按 F12 / Network 选项卡以查看请求数和 KB 传输。对于每个测试,我都会运行几个不同的页面并记下指标。虽然启用 django-compressor 确实显示更少的 HTTP 请求数量,但在我看来,它的页面加载时间比禁用 django-compressor 的时间长。

我知道启用 django-compressor 后,页面最初可能会运行得有点慢,因为它需要合并、压缩 js/css 文件并将压缩文件写入 S3。但是在我执行的测试中,压缩文件已经在 S3 中可用,并且 js/css 文件没有变化,因此 django-compressor 的开销应该是最小的。

任何人都有类似的问题,如果有让 django-compressor 更快的设置,请告知。谢谢。

0 投票
2 回答
859 浏览

django - Django 压缩器响应时间过长(15 秒)

我有app.html很多咖啡脚本(58 个文件)的页面。我使用 django-compressor 来编译它们:

一切都编译并工作,但页面响应需要 15 秒。我认为第一个请求应该没问题(应该编译咖啡),但是第二个、第三个和所有进一步的请求都需要 15 秒。

输出始终相同:

我不更改文件,我只是刷新页面。

似乎 django-compressor 会在每次请求时重新编译所有文件(但编译后的 js 文件的名称不会改变,这很奇怪)。

有什么办法可以加速 django-compressor?

附言

  • 我在本地运行 django manage.py runserver
  • DEBUG = True(我的 DEBUG 选项在 settings.py 中设置为 True)