问题标签 [django-pipeline]

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 回答
656 浏览

django - 让 django-pipeline 和 bower 一起玩得很好

我正在将凉亭组件安装到external/bower_components/我的项目根目录下。我有额外的静态文件static以及一些已安装应用程序的一部分。我正在尝试使用 django-pipeline 来缩小所有存在的静态文件,bower_components而我不理会其他静态文件。

我的问题是我不知道如何使用 django-pipeline 来缩小我的凉亭组件,同时又不将所有凉亭包复制到目标目录。

settings.py

当我运行时python manage.py collectstatic,我最终得到了我想要的所有staticfiles东西(静态基础中的东西以及从凉亭中拉入的东西的缩小版本),以及凉亭中每个包的完整来源。从最终用户的角度来看,这是可行的,但是我实际上并不想要很多多余的垃圾。

为了解决这个问题,我尝试了python manage.py collectstatic -i bower_components. 但是在这种情况下,忽略不仅会导致collectstatic不复制文件,还会导致 django-pipeline 看不到文件,最终导致

如果我尝试使用一些自定义管道查找器,例如pipeline.finders.FileSystemFinder它会导致collectstatic忽略我想要的所有静态脚本和 cssdjango.contrib.admin以及我的static/文件夹。

有没有一种方法可以让我吃蛋糕并吃掉它,这样我就可以获得collectstatic复制功能来关注一个组,而 django-pipeline 的组合/缩小关注另一个组?

写完之后,我意识到答案可能是使用 and 显式收集和缩小我安装的应用程序中的所有脚本和 css,PIPELINE_CSS但这PIPELINE_JS似乎并不理想,因为每次集成新应用程序时都会产生不寻常的开销。

0 投票
1 回答
1737 浏览

django - 管道 / yUglify 的收集文件失败:系统找不到指定的路径

我一直在尝试让 django-pipeline 来组合和缩小我的 css 和 js 资产。我似乎无法解决以下问题。当我运行时:

我收到一个错误:

我可能需要安装一些额外的软件包吗?如果是这样,怎么做?

我对 django-pipeline 的设置:

这是完整的输出:

更新

我用另一个压缩机再次尝试过:

这给出了完全相同的结果,我可能做错了什么?

更新 2

如果我将压缩器设置为 None 一切正常,即文件被合并并放置在静态文件夹中。他们也得到了正确的服务。

所以它必须是访问或使用压缩器的东西。我在 Windows 上运行。

更新 3

我在 /site-packages/pipeline/compressors/ 中添加了一些 print() 命令到init .py

命令是: /usr/bin/env/ yuglify --type=css --terminal 哪个可以(可能?)永远不会在 Windows 上工作。

然后我尝试将它部署到 AWS Elastic Beanstalk,但我也收到了一个错误:

我知道可以手动设置压缩机箱的位置,但是在哪里为 Elastic Beanstalk 设置它?

任何建议如何解决这个问题?

0 投票
2 回答
434 浏览

python - 为什么 Django 在运行时创建一个“静态”目录?

我是 Django 的新手。我正在将 Django-Pipeline 与 Bower 一起使用。我遵循了这个文档

这是我的 Django 项目的结构:

Django 在 myProject 中创建“静态”目录是正常行为吗?如果我手动删除静态文件夹,它会在下一页刷新时自动创建。

我没有得到的是我已经使用 STATICFILES_DIRS 设置指定了在哪里找到静态文件。所以对我来说,Django(至少在开发环境中)将直接从我的凉亭组件文件夹中提供文件似乎是合乎逻辑的。

我错过了什么吗?

编辑:我没有运行 collectstatic。这个文件夹是在我刷新页面时创建的。

0 投票
1 回答
1084 浏览

python - Django pipeline - How to serve static files after running collectstatic?

My project structure

So I run the collectstatic command. My css/js files are gathered (and compressed into a single file) into the STATIC_ROOT directory (myProject/myProject/static). So far so good.

First question: How do I serve them?

I tried calling http://127.0.0.1:8000/static/css/styles.css but it returns a 404 file not found error.

I tried adding STATIC_ROOT in the STATICFILES_DIRS but then I get the error:

The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting.

Second question: Can Django serve "project-wide" static files?

I know that you can serve "application-wide" static files by calling "/static/myApp/my-static-file.css". But does Django know about myProject/myProject/static the way it knows about the static folder inside each app? Or is it something you need to tell explicitly?

I've read some blog/forum posts saying that you need to change urls.py to but I tried, without success. Do I have to?

I find it pretty hard to find information about static files in Django's documentation and I'm very confused right now.


EDIT: now I am really confused: I tried setting PIPELINE_ENABLED = False and now this url works. http://127.0.0.1:8000/static/css/styles.css but it doesn't help because when PIPElINE_ENABLED is False, it doesn't try to call the compressed css, but all files separately.

0 投票
1 回答
1014 浏览

django - 如何使用 jinja2 模板调用 django-pipeline 压缩器

我希望在我的基于 Jinja2 的 Python 项目中为 Google App 引擎压缩 JS 和 CSS。我已经安装了 django-pipeline,并将其添加到我的项目路径中。

有些文档对我来说不是很清楚。特别是 Jinja2 的用法。

对于 Django 模板,在 base.html示例中,插入:

我假设 Jina2 的等价物类似于

但这给出了 UndefinedError: 'compressed_css' is undefined

我的问题是 如何在 Jinja2 中加载“压缩”模板?这与 Django 不同,我找不到示例。

文档还说

为了使用 Django Compressor 的 Jinja2 扩展,我们需要将compressor.contrib.jinja2ext.CompressorExtension 传递到环境中:

我已经做到了。

文档还指出

“与 Django 模板标签实现不同,Jinja2 实现使用不同的模板,所以如果你想覆盖它们,请覆盖 pipeline/css.jinja 和 pipeline/js.jinja。”

我不确定我是否需要在这里做任何事情。

我的 settings.py 包含以下语句:

0 投票
1 回答
491 浏览

django - 使用 django-pipeline 收集静态后自动删除源文件

使用 django-pipeline,是否可以在 collectstatic 之后自动删除源文件?

例如 :

收集静态:

(我不想要 jquery.js、d3.js、application.js)

0 投票
0 回答
469 浏览

python - PipelineStorage IOError:[Errno 21]

我开始使用 Django,我想要一个 SASS 编译器,所以我找到了 django-pipeline。我按照教程中的步骤完成了收集静态步骤。当我运行命令时

并输入“是”我收到此错误:(整个回溯)

这是我的 settings.py 文件:

我也安装了 Yuglify。此行在 settings.py 中时会发生错误:

删除它我没有收到任何错误,所有文件都被复制到 STATIC_ROOT 目录,但不知何故,我觉得那行很重要,应该省略。

0 投票
1 回答
1087 浏览

python - Django 1.8.2 不提供所有静态文件 - django-pipeline

我正在运行 Django 1.8.2,并且正在使用django-pipeline 1.5.1来收集和压缩我的 CSS 和 JS 文件。

运行后python manage.py collectstatic,Django 收集所有文件并按照配置进行压缩。但是当我想访问网络服务器时,开发服务器并不提供所有静态文件。即无法加载来自django-pipeline的那些。

我的模板如下所示:

当页面在开发服务器中加载时,Django 将代码转换为:

到目前为止还不错。但是无法提供管道中的文件:

master.js但我可以在我的静态文件夹中看到失败:

为什么提供了网站图标,但没有提供压缩文件?我按照官方教程并仔细检查了它。谢谢你的帮助。

另外 该站点运行良好,通常提供静态文件。该问题仅发生在 django-pipeline 中的压缩文件中。

相关设置

网址.py

0 投票
0 回答
162 浏览

python - Django Pipeline 不加载静态文件 - 抛出 CompilerError

在我的本地它工作正常但在我的生产环境中我可以编译更少的文件但是当我想加载它们时:

我收到一个错误:

CompilerError at / /usr/bin/env: node: No such file or directory

有什么办法可以在设置中使用变量指向节点二进制文件?

谢谢。

0 投票
0 回答
519 浏览

python - Django Pipeline - 模板渲染期间出错 - 语法无效

我将 Django 1.8.2 与 django-pipeline 1.5.1 和 Python 3.4 一起使用

我按照该工具作者提供的安装说明进行操作。在我提供开发服务器的本地机器上,一切正常。但是当我尝试将它部署在使用 mod_wsgi4.4.13 运行 Apache2 的生产服务器上时,我收到此错误:

显然,Apache 不知道如何处理关键字stylesheet. 不得不说,该网站以前运行良好。但是使用 django-pipeline 我得到了这个错误。

我的管道配置如下所示:

我的问题是,我确信已经正确安装和配置了 django-pipeline,但是在我的生产服务器上我得到了这个错误。

压缩和提供 css 和 js 文件可以在本地机器上正常工作。因此 django-pipeline 不能被严重错误配置。

生产服务器

  • Ubuntu 14.04
  • 最新的 Apache 2.4.7
  • 蟒蛇 3.4
  • Django 和安装在 Virtualenv 中的所有应用程序
  • mod_wsgi 4.4.13

摘自虚拟主机

您对如何解决此问题有任何想法吗?谢谢!