【发布时间】:2018-05-04 12:21:47
【问题描述】:
我正在尝试让sinatra-asset-pipeline 为我的 Sinatra 应用程序工作,这样我就可以让我的资产显示在 Heroku 上。我遵循 MVC 模式,目前将我的资产存储在 project-folder/assets/stylesheets/application.scss 中。我的 config/environment.rb 文件包含所有 gem 要求:
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 中配置 sinatra-asset-pipeline gem。
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 任务的代码
Sinatra::AssetPipeline::Task.define! ApplicationController
当我运行rake assets:precompile --trace 时,我得到:
** Invoke assets:precompile (first_time)
** Execute assets:precompile
创建文件夹/public/assets/.sprockets-manifest-107e377ad857386671d3a9b56a890322.json。该文件只包含这行代码:{}
【问题讨论】:
标签: ruby heroku sinatra asset-pipeline sinatra-assetpack