2
問題は、生成されたアセットパスが何も指していないということです。プロジェクトディレクトリは変更されません。スプロケットはjsを構築/圧縮しません。 asset_pipeline.rbSinatraにアクセスしたときにスプロケット資産がコンパイルされない
require 'sprockets-helpers'
module AssetPipeline
module_function
def registered(app)
app.set :assets, assets = Sprockets::Environment.new(app.settings.root)
app.set :assets_path, -> { File.join(public_folder, "assets") }
app.set :assets_precompile, %w(app.js)
assets.append_path('assets/javascripts')
app.configure :development do
assets.cache = Sprockets::Cache::FileStore.new('./tmp')
app.get '/assets/*' do
env['PATH_INFO'].sub!(%r{^/assets}, '')
settings.assets.call(env)
end
end
app.configure :production do
Sprockets.register_compressor 'application/javascript', :uglify, Sprockets::UglifierCompressor
Sprockets.js_compressor = :uglify
end
Sprockets::Helpers.configure do |config|
config.environment = assets
config.prefix = '/assets'
config.debug = true if app.development?
if app.production?
config.digest = true
config.manifest = Sprockets::Manifest.new(
assets,
File.join(app.assets_path, "manifesto.json")
)
end
end
app.helpers Sprockets::Helpers
end
end
私はアプリでを実行しているの私のapp.rbで
<%= javascript_tag 'app' %>
(メイン・シナトラファイル)
register AssetPipeline
:私のERBで
RACK_ENV=production puma
最後のスニペットからわかるように、私はUglifierコンプレッサーセットアップを持っています。
私はブラウザでご覧問題は(およびシナトラ/ピューマログが同様に404を示している) /assets/app-digesthash.js
が発見されていないということです
関連する宝石のバージョン:
puma (3.11.0)
sinatra (2.0.0)
sprockets (4.0.0.beta6)
sprockets-helpers (1.2.1)
私はActionMailerに切り替えました。 'gem 'actionmailer'、require: 'action_mailer''と私の問題は解消しました: - \ – NullVoxPopuli
あなたの質問が解決された場合は、それを解決済みとしてマークしてください。 –
私の質問は解決されません。私はまだ資産を指紋印刷する方法を知らない – NullVoxPopuli