Я хочу, чтобы мое простое приложение sinatra с OpalRb Sprockets работало через веб-протокол https.
Но оно не работает. Для каждого сгенерированного опалового js-файла возвращается 404:
[22 / Oct / 2019: 17: 48: 17 HDT] "GET /assets/application.self-1919f5f7df8787d30bea01e4777248655a1ffc0533dcb37dedd4f797c018e19c.js / /1.1 "404 555
[22 / Oct / 2019: 17: 48: 16 HDT]" GET /assets/async/countdown.self-1a8c3d3b24219f07fe1d619745a23543afbc1862ed427e52d884ba406a0173ac.js 1004 = HTTP4*https://localhost:4443/ -> /assets/async/countdown.self-1a8c3d3b24219f07fe1d619745a23543afbc1862ed427e52d884ba406a0173ac.js?body=1 [2019-10-22 17:48:16] DEBUG Rack :: Handler :: WEBrick вызывается. 127.0.0.1 - - [22 / Октябрь / 2019: 17: 48: 16 -0900] «GET /assets/async/task.self-51bf482f4ed7ef3fb4dcdc63597ba56150e816bbdd68d6bc09c5e5f30f779723.js?body=1 ...
Я предполагаю, что пути звездочек не подключены к приложению sinatra. Я запускаю сервер с: "bundle exec rackup"
require 'webrick/https'
require 'webrick'
require 'bundler'
Bundler.require
### OPAL SPROCKETS ###
opal = Opal::Sprockets::Server.new {|s|
s.append_path 'app'
s.main = 'application'
}
sprockets = opal.sprockets
prefix = '/assets'
# WEBRICK HTTPS
CERT_PATH = 'cert/'.freeze
root = File.expand_path File.dirname(__FILE__) + "/public"
puts root
webrick_options = {
Host: '0.0.0.0',
Port: 4443,
Logger: WEBrick::Log.new($stderr, WEBrick::Log::DEBUG),
# DocumentRoot: root,
SSLEnable: true,
SSLVerifyClient: OpenSSL::SSL::VERIFY_NONE,
SSLCertificate: OpenSSL::X509::Certificate.new(File.open(File.join(CERT_PATH, 'chip.crt')).read),
SSLPrivateKey: OpenSSL::PKey::RSA.new(File.open(File.join(CERT_PATH, 'chip.key')).read),
SSLCertName: [['EN', '0.0.0.0']]
}
### APPLICATION ###
get '/' do
@str_js_include = Opal::Sprockets.javascript_include_tag('application', sprockets: sprockets, prefix: prefix, debug: true).to_s
erb :main
end
get '/test' do
erb :test
end
get '/login' do
erb :login
end
map prefix do
# Rack::Handler::WEBrick.run sprockets - tried to do like that, no success
run sprockets
end
Rack::Handler::WEBrick.run Sinatra::Application, webrick_options```