2017-11-21 16 views
0

私のSinatraアプリケーションではsinatra-asset-pipelineを動作させようとしているので、アセットを取得してHerokuに表示することができます。私はMVCパターンに従っており、現在資産をproject-folder/assets/stylesheets/application.scssに保存しています。私config/environment.rbファイルには、すべての宝石の要件が含まれています Sinatraアセットパイプラインの宝石、空の.jsonにコンパイル

require 'bundler/setup' 
Bundler.require 
require 'sprockets' 
require 'sinatra/activerecord/rake' 
require 'sinatra/asset_pipeline/task' 
require 'sinatra/asset_pipeline' 
require 'sinatra/sprockets-helpers' 
require 'rack-flash' 
require 'sass/plugin/rack' 
require_all 'app' 

が、私は私の ApplicationController内部 シナトラ・アセット・パイプライン宝石を設定します。
require './config/environment' 

class ApplicationController < Sinatra::Base 
    register Sinatra::Sprockets::Helpers 
    register Sinatra::AssetPipeline 
    set :sprockets, Sprockets::Environment.new('app') 
    set :assets_prefix, '/assets' 
    set :digest_assets, true 

    configure do 
    set :public_folder, 'public' 
    set :views, 'app/views' 
    sprockets.append_path File.join('app', 'assets', 'stylesheets') 
    end 

    get '/' do 
    erb :'index' 
    end 

end 

マイ Rakefileは私が rake assets:precompile --traceを実行するとrakeタスク

Sinatra::AssetPipeline::Task.define! ApplicationController 

を実行するためのコードが含まれています私が手:

フォルダ /public/assets/.sprockets-manifest-107e377ad857386671d3a9b56a890322.jsonを作成
** Invoke assets:precompile (first_time) 
** Execute assets:precompile 

。このファイルには、このコード行を含むされています{}

答えて

0

私は私のrakeタスクは、適切なフォーマットでコンパイルするために取得するために私のコントローラ内asset_precompileを指定する必要がありました:set :assets_precompile, %w(application.css *.png *.jpg *.svg *.eot *.ttf *.woff *.woff2)私はこの答えは誰にもシナトラや資産に苦しんで役立つことを願ってパイプライン。

class ApplicationController < Sinatra::Base 
    register Sinatra::Sprockets::Helpers 

    set :assets_precompile, %w(application.css *.png *.jpg *.svg *.eot *.ttf *.woff *.woff2) 

    register Sinatra::AssetPipeline 
    set :sprockets, Sprockets::Environment.new('app') 
    set :assets_prefix, '/assets' 
    set :digest_assets, true 

    configure do 
    set :public_folder, 'public' 
    set :views, 'app/views' 
    sprockets.append_path File.join('assets', 'stylesheets') 
    end 

    get '/' do 
    erb :'index' 
    end 

end 
関連する問題