关于Heroku的Django,与Yuglify和CollectStatic的问题

时间:2014-08-05 14:25:08

标签: python django heroku django-pipeline yuglify

我正在使用Django-Pipeline来缩小我的javascript。当我将项目推送到Heroku和CollectStatic运行时,它会给我错误

pipeline.exceptions.CompressorError: /usr/bin/env: yuglify: No such file or directory

但是当我手动运行CollectStatic时,Yuglify运行没有问题。我无法找出问题所在。我应该在这种情况下向你们展示什么代码?

2 个答案:

答案 0 :(得分:1)

我的解决方案是添加一个" yuglify"这里是代码库的一部分:https://github.com/nigma/heroku-django-cookbook

这是我的代码:

仓/ install_yuglify

#!/usr/bin/env bash
set -eo pipefail
npm install -g yuglify

然后将以下内容添加到bin / post_compile(第23行......)

if [ -f bin/install_yuglify ]; then
    echo "-----> Running install_yuglify"
    chmod +x bin/install_yuglify
    bin/install_yuglify
fi

你应该好好去:)

您可以在此处查看我的代码,以供参考:https://github.com/GK-12/rpi_csdt_community/tree/master/bin

祝你好运!

答案 1 :(得分:0)

我设法通过一个不太痛苦的解决方案来解决问题。 Heroku为您提供了buildpacks,它实际上是您的应用程序将构建的环境。默认情况下你有python buildpack。这就是系统能够运行python manage.py等命令的原因。我的解决方案如下: 1)将nodejs buildpack安装为第一个buildpack

controllerDidChangeContent

2)将package.json添加到与requirements.txt相同的路径中 3)在package.json中添加yuglify的依赖关系

另一个解决方案是更改你的压缩并使用python编写的压缩。

fetchedResultsController?.managedObjectContext.refreshAllObjects()

pip install cssmin jsmin

我没有明确的意见,这是更好的jsmin或yuglify。