gpt4 book ai didi

ruby - 访问 Sinatra 时 sprockets Assets 未编译

转载 作者:太空宇宙 更新时间:2023-11-03 16:41:48 25 4
gpt4 key购买 nike

我遇到的问题是生成的 Assets 路径没有指向任何东西——我的项目目录没有改变/sprockets 没有构建/压缩 js。

在我的 erb 中:

  <%= javascript_tag 'app' %>

在我的 app.rb(主 sinatra 文件)

  register AssetPipeline

在 asset_pipeline.rb 中

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

我正在运行应用程序

RACK_ENV=production puma

正如您在最后一个片段中看到的,我有 Uglifier 压缩器设置。

我在浏览器中看到的问题是/assets/app-digeshash.js 未找到(并且 sinatra/puma 日志也显示 404)

相关的 gem 版本:

puma (3.11.0)
sinatra (2.0.0)
sprockets (4.0.0.beta6)
sprockets-helpers (1.2.1)

最佳答案

block app.get '/assets/*' do 似乎被错误地限定了范围。将它移到它所在的 block 之外的顶部(为了安全起见,在生产配置之后)它应该正确启动,如下所示:

app.configure :development do
assets.cache = Sprockets::Cache::FileStore.new('./tmp')
end

app.configure :production do
Sprockets.register_compressor 'application/javascript', :uglify, Sprockets::UglifierCompressor
Sprockets.js_compressor = :uglify
end

app.get '/assets/*' do
env['PATH_INFO'].sub!(%r{^/assets}, '')
settings.assets.call(env)
end

关于ruby - 访问 Sinatra 时 sprockets Assets 未编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47503249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com