私の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
。このファイルには、このコード行を含むされています{}