gpt4 book ai didi

sinatra - 如何在不带 Rack 文件的情况下将Sprockets与Sinatra一起使用?

转载 作者:行者123 更新时间:2023-12-04 03:01:51 26 4
gpt4 key购买 nike

我正在编写一个库,该库具有通过Thor启动的嵌入式Sinatra应用程序。我想在Sprockets::Environment/css上挂载/js实例,并将主应用程序映射到/。在Rack::URLMap文件中使用config.ru会很容易,但是在这种情况下没有一个,因为我使用Sinatra::Application.run!以编程方式启动Sinatra应用程序。我怎样才能做到这一点?

最佳答案

实际上,这并不难。您所需要做的就是将Sprockets::Environment实例分配给Sinatra配置变量,并定义一些路径来查找您感兴趣的 Assets 。

这是一个基本示例:

require "sass"
require "haml"
require "erubis"
require "sinatra"
require "sprockets"

set :assets, Sprockets::Environment.new

# Configure sprockets
settings.assets.append_path "app/javascripts"
settings.assets.append_path "app/stylesheets"

# For compressed JS and CSS output
require "yui/compressor"
settings.assets.js_compressor = YUI::JavaScriptCompressor.new
settings.assets.css_compressor = YUI::CssCompressor.new

get "/" do
haml :index
end

get "/javascripts/:file.js" do
content_type "application/javascript"
settings.assets["#{params[:file]}.js"]
end

get "/stylesheets/:file.css" do
content_type "text/css"
settings.assets["#{params[:file]}.css"]
end

扣人心弦!

关于sinatra - 如何在不带 Rack 文件的情况下将Sprockets与Sinatra一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576422/

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