0

OpalRb Sprockets を使用したシンプルなシナトラ アプリケーションを webrick https で動作させたいと考えています。

しかし、うまくいきません。生成された opal js ファイルごとに 404 が返されます。

[2019/10/22:17:48:17 HDT] "GET /assets/application.self-1919f5f7df8787d30bea01e4777248655a1ffc0533dcb37dedd4f797c018e19c.js?body=1 HTTP/1.1" 404 555

[2019/10/22:17:48:16 HDT] "GET /assets/async/countdown.self-1a8c3d3b24219f07fe1d619745a23543afbc1862ed427e52d884ba406a0173ac.js?body=1 HTTP/1.1" 404 564 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/Oct/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```
4

1 に答える 1