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

django - django-compressor、heroku、s3:请求已过期

我在 heroku 上使用 django-compressor 和 amazon s3 提供静态文件,我一直遇到以下错误,因为压缩器生成了指向静态文件的链接。我对压缩机和 s3 完全陌生:

我配置了两台heroku 服务器,一台用于登台,一台用于生产。他们每个人都有自己的数据库和 s3 存储桶。它们还共享相同的设置文件,所有唯一设置都配置为环境变量。我已经检查过静态文件实际上被推送到它们各自的存储桶中。

压缩机和s3设置如下:

每次我在登台或生产上向 heroku 推送更新时,我最终都会遇到上述问题。有时会在一小时后发生,有时会发生在一天后,有时会发生在一周后,有时会在推出更新后立即发生。奇怪的是,如果我将相同的更新推送到两个环境,一个会起作用,我会在另一个上得到错误,或者它们都将首先起作用,一个会在一小时后过期,另一个会在一周后过期.

如果有人能解释发生了什么,我将不胜感激。显然是 Expires 参数导致了这个问题,但是为什么每次推送都会改变持续时间以及决定时间量的因素是什么?您如何更改到期时间?如果您需要更多信息,请告诉我。

更新:我通过设置 AWS_QUERYSTRING_AUTH = False 暂时解决了这个问题。似乎没有任何方法可以在查询字符串中设置 EXPIRATION TIME,只能在请求标头中使用。

0 投票
1 回答
337 浏览

django - Django 压缩器未正确更改相对 URL

例如,在我的 SCSS 文件中,

变成

这显然是行不通的。

我在我的 settings.py

我尝试了几次运行压缩,并重新启动服务器,等等。它昨天工作了一次,我得到了通往 S3 的完整路径。但现在没有了,我的自定义资源也没有加载。

不过,Bootstrap 的 URL 似乎总是有效。它确实成功生成

有任何想法吗?

0 投票
1 回答
770 浏览

css - 如何将 django-compressor 与多个导入通用文件的 LESS 文件一起使用?

我在我的 Django 项目中组织了模板,使得站点上的每个页面都包含一个“通用”LESS 文件,并且每个页面还可以指定另一个包含页面特定样式的 LESS 文件。

问题是我需要特定于页面的 LESS 文件才能引用“通用”LESS 文件中的变量。我认为最简单的方法是简单地将变量声明移动到两个 LESS 文件都可以的单独文件中@import

但是,Django 应用程序使用单独的目录来存储它们的静态文件。最后,文件系统看起来像这样:

两者都common.less需要other.less导入definitions.less。在这种情况下common.less很简单:

以下是页面中实际包含 LESS 文件的方式,以防万一:

确保两个 LESS 文件都可以使用公共变量定义的最简单方法是什么?我想避免组合 LESS 文件有几个原因:

  • 它消除了松耦合的好处(停用应用程序而不会对站点的其余部分产生任何副作用的能力)。
  • 由于必须获取所有应用程序的所有样式,因此增加了为单个页面检索的附加数据。
0 投票
3 回答
1992 浏览

python - Python/Tornado - 压缩静态文件

对于 django 项目,有一个很棒的工具叫做django-compressor。它将compress模板标签下的所有 js 或 css 文件组合到单个缓存文件中,如下所示:

我想知道龙卷风项目是否有类似的东西?或者可能有任何解决方法/替代解决方案?

我在 github 上找到了这个项目,但它不再维护。

0 投票
2 回答
2183 浏览

python - 一起使用 django-storages 和 django-compressor 时尝试压缩静态文件时出错

我已经设置了一个 AWS S3 存储桶,以便使用应用程序 django-storages 在远程 CDN 中传输我的静态文件,一切正常,直到我尝试在使用 django_compressor 上传到 S3 之前压缩我的静态文件。

我已经根据 django-storages 的 django_compressor 文档设置了所有变量(https://django_compressor.readthedocs.org/en/latest/remote-storages/index.html

我使用'manage.py collectstatic'上传了S3中的所有文件,然后:

当我执行“manage.py compress”时,我收到此错误:

我的设置有什么问题?

这是我对 django-storages 和 django_compressor 的 settings.py 配置:

谢谢你的帮助

0 投票
1 回答
1025 浏览

django - django 无法在 heroku 上提供 gzip

我已django.middleware.gzip.GZipMiddleware启用。它提供模板 gzipping。

django-compressor 设置为COMPRESS_STORAGE = 'compressor.storage.GzipCompressorFileStorage'

本地一切正常。静态 css 和 js 资产被压缩并拆分为一个文件并 gzip,html 响应为 gzip 页面,但部署在 heroku 上,它不起作用。django-compressor 甚至不会.gz在其文件夹中创建版本。

今天,我可以摆脱压缩器并进行 css 和 js 的预构建 gzip 压缩。但这似乎总体上很奇怪。至少满足中间件的要求。

UPD

好的,我本地化了部分问题。由于某种原因,我的代理未配置为处理压缩内容。所以GZipMiddleware它应该工作。django-compressor 仍有待测试。

UPD2

毕竟一切正常。据我所知,压缩机的问题是(在部署到亚马逊 s3 之后)AWS_IS_GZIPPED = True在 settings.py中没有

0 投票
3 回答
1862 浏览

django - django-compressor:使用预编译器禁用缓存

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

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

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

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

0 投票
1 回答
472 浏览

django - AWS S3 Url 随 django 静态动态变化

当我使用 {%static %} 模板从 AWS S3 提供静态文件时,我得到这种类型的 url: https://elasticbeanstalk-eu-west-1-2548513.s3.amazonaws.com/css/7aa4edf0c543.css?签名=lpSpJuyv55JwkjxGKnNVmfn5QKs%3D&Expires=1370880855&AWSAccessKeyId=AKIAIDOQ45S6OQCXGNYQ

那么签名每次都会改变。因此,当我使用带有离线压缩的 django_storages 时,该文件的密钥每次都在更改,因为它的名称正在更改,所以我收到错误消息:您启用了离线压缩,但离线清单中缺少密钥“4c18774209c3d10bb81ec7f466b17e21”。您可能需要运行“python manage.py compress”。

如果我不使用 {%static %} 模板,而是使用常量 URL,则不会发生此错误..

为什么 aws s3 有那种 URL?签名和 Expires 参数的意义何在?我将我的 aws s3 配置更改为发送过期标头和缓存控制 1 年,但是来自 url 的过期时间仅为一小时。

0 投票
0 回答
119 浏览

python - 如何让 django-compress 和 s3cmd 一起工作

在工作中,我们使用 s3cmd 将我们的静态文件发送到 S3。工作流程是:

我们现在正在尝试使用 django-compress,所以现在我们的工作流程是:

我们不使用压缩器推荐的 django-storages 的原因是我们在 CSS 上遇到了一些问题。令人惊讶的是,无论我们使用什么压缩解决方案,压缩文件中都缺少一些 css 规则。

完整的追溯可以在这里找到。有谁知道这里发生了什么?非常欢迎提出改进我们的压缩和上传工作流程的建议。

0 投票
1 回答
275 浏览

django - Django 压缩器无法在生产中压缩咖啡脚本文件

我使用 stylus 和 coffeeScript 和 django 压缩器,它在 Dev 中完美运行。这是我的 Jade 模板:

对于部署,我将 Heroku 和 Amazon S3 用于静态文件。部署后,我访问该站点,页面加载正常,样式看起来如预期,但脚本无法正常工作。检查<head>我看到样式被压缩到一个 css 文件中,但咖啡脚本文件没有。浏览器正在获取 CS 源文件:

它以前工作过,我曾经遇到过这个问题,但我不记得是什么原因,我认为编译过程正在默默地失败,我不知道如何调试它。