У меня есть приложение Middleman, которое я обслуживаю, используя Rack::TryStatic
.Стойка :: Строитель и стойка :: TryStatic не работает
Адрес config.ru
.
use Rack::TryStatic,
root: 'build',
urls: %w[/],
try: ['.html', 'index.html', '/index.html']
run lambda{ |env|
four_oh_four_page = File.expand_path("../build/404.html", __FILE__)
[ 404, { 'Content-Type' => 'text/html'}, [ File.read(four_oh_four_page) ]]
}
Я понимаю, что когда вы используете config.ru
с run
, map
или use
методов, они преобразуются в Rack::Builder
объекта.
Я попробовал оборачивать этот конфиг в Rack::Builder
объекте:
app = Rack::Builder.new do
use Rack::TryStatic,
root: 'build',
urls: %w[/],
try: ['.html', 'index.html', '/index.html']
run lambda{ |env|
four_oh_four_page = File.expand_path("../build/404.html", __FILE__)
[ 404, { 'Content-Type' => 'text/html'}, [ File.read(four_oh_four_page) ]]
}
end
run app
Когда я делаю это, я получаю 404 страниц для всех запросов.
Почему это не работает?
Brilliant, спасибо. Я использовал «Rack :: Builder.app», и теперь он работает :) – jordelver