css – Django管道,Heroku和SASS

前端之家收集整理的这篇文章主要介绍了css – Django管道,Heroku和SASS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在试图获得 django-pipeline设置,以便我可以编译并连接我的资产.我还要从我的存储库中删除编译的css文件,以避免在pull请求中出现合并冲突.

我一直试图获得django-pipeline来编译文件,作为部署过程的一部分,但是无法理解.我用SASS写我的CSS.我的管道设置如下所示:

STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'

PIPELINE_CSS = {
    'main': {
        'source_filenames': (
            'sass/blah.scss','sass/main.scss',),'output_filename': 'css/main.css','extra_context': {
            'media': 'screen',},}

PIPELINE_COMPILERS = (
  'pipeline.compilers.sass.SASSCompiler',)

这在本地工作很好,并在我的/ sass文件夹中生成.css文件,然后将其组合成main.css文件.如果我检查这些CSS文件到我的git仓库并推送到Heroku,它也可以正常工作.但是,如果我忽略它,我想做的是不提交编译文件,那么django-pipeline找不到要合并的文件.我不知道我怎么能得到在Heroku上工作的sass编译,我找不到任何东西.

如果需要,我可以提供有关我的设置的更多信息,希望有人知道这一点!

解决方法

好的,这是我如何使用 Compass编译我的SASS文件.

>使用多个Heroku buildpacks – Heroku Buildpack Multi
>将以下内容放在.buildpacks文件

https://github.com/heroku/heroku-buildpack-ruby.git
https://github.com/heroku/heroku-buildpack-nodejs
https://github.com/heroku/heroku-buildpack-python.git

>使用指南针创建一个Gemfile和您拥有的任何其他要求.这是我的

source 'https://rubygems.org'

ruby '1.9.3'

gem 'bootstrap-sass'
gem 'compass'

>创建一个config.rb文件.这是我的正如你可以看到的,需要我包含在我的Gemfile中的bootstrap-sass:

# Require any additional compass plugins here.
require 'bootstrap-sass'

# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "app_folder/static/css"
sass_dir = "app_folder/static/sass"
images_dir = "app_folder/static/images"

output_style = :compact

more details on config.rb can be found here
>安装节点包(django-pipeline want yuglify).你将需要一个package.json文件

{
  "dependencies": {
    "yuglify": "0.1.4"
  },"engines": {
    "node": "0.10.x","npm": "1.3.x"
  },"repository": {
    "type": "git","url": "your repo url"
  }
}

几乎准备好了
>当Heroku运行ruby构建包时,它会寻找一个名为assets的耙子任务:precompile.所以现在你需要添加一个Rakefile和以下内容

namespace 'assets' do
  desc 'Updates the stylesheets generated by Sass/Compass'
  task :precompile do
    print %x(compass compile --time)
  end
end

这将会编译你的样式表.您需要确保将输出(config.rb)设置为django-pipeline正在寻找CSS文件的位置(在原始问题中显示).
>你应该在原来的问题中摆脱这一部分,因为django-pipeline没有为你编译你的SASS:

PIPELINE_COMPILERS = (
  'pipeline.compilers.sass.SASSCompiler',)

>应该是!部署现在应该正常工作,并没有为我的部署过程增加大量的时间.

总而言之,这相当于很多设置,但对我来说,这是非常值得的,因为我不再需要将编译的文件提交到存储库中,这在使用分支和拉取请求时引起了大量的合并冲突.

我想知道如何使用只有两个构建包(显然只有一个是理想的,但我不知道是否可能).问题是试图找到二进制路径,以便管道可以在没有找到默认值的情况下做到这一点.我不知道我不能这样做的原因是因为Heroku如何安装东西,还是因为在django-pipeline中有一个错误,但现在这对我来说已经够了.

如果你尝试这样做,它不适合你,让我知道,如果我错过了一些我很乐意进行更新的东西.

猜你在找的CSS相关文章