问题标签 [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 投票
1 回答
437 浏览

python - 部署压缩资产的更好方法 - Django Compressor

所以我有一个棘手的问题,我无法找到更好的解决方案。

我正在使用django-compressor它在压缩/缩小文件方面做得很好。我面临的问题是在部署期间。一段时间以来,我只是compress在生产中使用标签,我只是在所有页面上进行 curl 以确保它重新生成正确的 CSS/JS。这样一来,新用户就不必在压缩过程中首当其冲。

我知道它有一个管理命令,它可以预压缩文件,然后可以将其推送到 CDN,并可能在登陆/登录页面的幕后预加载它们。

这是问题所在,在一些 javascript 代码中,我使用上下文变量和 django 标签 [自定义和本机]。

这会导致错误,因为在压缩期间它会尝试执行显然没有值的标签。它确实带有,COMPRESS_OFFLINE_CONTEXT但不是动态的。

有没有人遇到过这个问题。如果代码与一些 django 标签/上下文变量混合,你如何进行压缩?

0 投票
1 回答
296 浏览

django - django-compressor 和 data-URIs

我已经启动并运行了django-compressor,并且已经测试了 COMPRESS_OFFLINE 的开启和关闭(两者都有效)。现在我正在尝试使用它的 CSS 数据 uri 生成功能,但运气不佳。除了添加设置之外,其他出色的文档没有说明如何配置或使用它:

如果我然后链接到包含以下内容的样式表:

并查看该样式表上的源代码,我希望看到表示为 data-uri 的图像,但我没有 - 它仍然是正常的路径/到/文件。

如果我设置COMPRESS_OFFLINE为 true 并运行manage.py compress并检查生成的文件,同样的处理。

是否需要额外的步骤才能使用 django-compressor 在样式表中生成数据 uri?

0 投票
1 回答
2561 浏览

python - Django 压缩器使用 gzip 来提供 javascript

我正在尝试从 amazon s3 提供 gzip 文件。这是我的settings.py:

当我这样做时,django 为每个 *.js 和 *.css 压缩创建 *.gz 文件,但奇怪的是只有 *.css 文件作为 gzip 提供。我可以在 aws s3 上看到 .css 文件具有 Content-Encoding: gzip 而 *.js 没有。这里发生了什么?

0 投票
0 回答
380 浏览

css - django压缩器,只压缩js

有一个 ie7 错误,其中第 4094 个选择器之外的文件中的 css 选择器被忽略。您如何禁用 django 压缩器从较小的 css 文件制作较大的 css 文件,但将其保留为 javascript?

在设置中,您可以设置COMPRESS_ENABLED = False哪些仍然允许较少和其他资产离线预编译。理想情况下,我想要一个用于 Rails的 COMPRESS_CSS_FILTERS 工具(博客文章

编辑

实际上COMPRESS_CSS_FILTERS 只是返回字符串,所以我需要一个 post_compress 钩子(以及 django 压缩器为 {% compress %} 块中的每个标签属性提供触发的钩子,其中一个在所有 css 生成后触发的钩子会需要)。

0 投票
1 回答
1305 浏览

python - Django Compressor、S3 和 SASS,编译文件未上传

我正在尝试使用 Amazon s3 和 SASS 设置 Django Compressor,但我遇到了这个问题。

因此,这些是 django 压缩器的设置:

这是调用文件的模板部分

问题是压缩文件没有上传,因为它们被放在一个专用文件夹中(仅上传资产中的文件)

我做错什么了吗?

0 投票
1 回答
5210 浏览

django - 使用 {% static %} 使 Django 压缩

{% static %}我正在尝试使 django compress 工作,但我相信由于我的使用它不起作用。

我的模板是(我正在使用 pyjade 但没关系):

还有我的 settings.py 的一部分:

即使我$ python manage.py collectstatic压缩不起作用并吐出原始文件。在文档中它说我应该提供我认为我已经给出的绝对路径,不是吗?有人可以帮助进行压缩工作吗?谢谢。(我对 django 的静态文件不是很熟悉)。


更新

COMPRESS_ENABLED = True按照我在设置中启用(和)的Timmy 的评论后DEBUG=False,它仍然需要找到文件:

只是要注意静态文件已正确找到并呈现(何时COMPRESS_ENABLED = False)。

我的结构:


玩了一段时间后,看起来 compress 在 css 和{% static %}.

如果你有 link(rel="stylesheet", href="/static/less/bootstrap.css") 它极大地压缩样式表, link(rel="stylesheet", href="{% static 'less/bootstrap.css' %} ")它会引发错误。

在 js 上,它渲染得很好:script(type="text/javascript", src='{% static "bootstrap/js/bootstrap.min.js" %}')

0 投票
1 回答
283 浏览

django-compressor - 如何有条件地使用 django-compressor 包含 LESS 文件?

我想有条件地在这样的{% compress css %}块中导入一个 LESS 文件:

我正在使用离线压缩并获得一个OfflineGenerationError,这是有道理的,我只是不知道如何修复它。

我有几个想法:

  1. 将导入的逻辑移动到视图和服务器中 一个 html 文件用于包含,一个不包含
  2. 将逻辑移动到 css 中(如果/如何可能)
  3. 提供一个条件包含,它压缩 LESS 文件
  4. 删除压缩并将LESS文件编译为CSS,然后上面的代码应该可以工作

谢谢,

亚历克

0 投票
2 回答
1767 浏览

python - django css 和 js 文件在 heroku 上 gzip 压缩

我正在尝试压缩我的 css 和 js 文件并用作 gzip 文件,但没有成功。

我已经尝试了所有方法,django-pipeline、django-compressor 等。

我得到了 django-compressor 来创建 gzip 文件,但我不确定如何为它们提供服务。我使用 GzipMiddleaware 来压缩和提供我的 html 文件。

任何人都可以编写有关如何在 heroku django 上使用 gzip 和提供静态文件的分步指南。

很抱歉询问详细的步骤,我不是要求被勺子喂食,但我已经被这个问题困扰了将近 24 小时,尝试了 n 个解决方案,但似乎没有一个有效。

仅供参考,我正在使用 django-1.5

在此先感谢您的帮助

0 投票
1 回答
184 浏览

django - s3 上的 Django-compressor 无法识别和复制更新的文件

我正在使用 Django、django-compressor、django-storages 将我的站点的静态文件放到 s3 上。我能够将它们放到 s3 上,但是当我对文件进行修改,然后运行 ​​collect static 时,它报告没有修改过的文件。

我只是修改了一个文件,所以我想知道这是否是服务器上某处、s3 上某处的时间戳问题,还是其他地方的不一致。

我一直在查看收集静态的来源(https://github.com/django/django/blob/master/django/contrib/staticfiles/management/commands/collectstatic.py#L286

似乎它会传达信息

代替

如果它已经复制了它,但我不清楚为什么如果我们更新它会认为它已经被复制了。

也许我误解了有关压缩器或静态文件的文档,但在我看来,它应该已经在文件更新时处理收集和处理文件,但它仍然说(未修改)。

0 投票
1 回答
1530 浏览

django - Django-compressor 在第一个 compress 语句后不工作

我有一个包含各种 js 文件的网站,我正在使用 django-compressor,如下所示:

由于某种原因,它只创建了 FIRST js 文件。我的应用程序托管在 EC2 上。我可以在那里看到第一个文件。当我在页面上查看源代码时会出现第二个文件,但是,文件本身不存在(当我单击第二个 js 文件的链接时,我得到一个 404)。有什么我做错了吗?我的设置如下:

它对 css 文件非常有效......但是在第一个压缩标志之后在任何其他 js 文件上都失败了......