1

次のような config.ru があるとします。

map '/foo' do
  run MyApp
end

そして次のようなSinatraアプリ:

class MyApp < Sinatra::Base
  use Rack::Session::File, key: 'rack.session', domain: 'my.domain.com', path: '/foo', expire_after: 86400 * 14, secret: 'mysecret'
end

/fooアクセスに使用されるリクエスト ディレクトリ (この場合) にMyApp を依存させないようにするにはどうすればよいですか? request.script_nameこのディレクトリが含まれていることがわかりましたが、パッセンジャーからアプリを起動するときはまだ定義されておらず、リクエストが後でアプリケーションに送信されるときにのみ定義されているためpath:、ステートメントのパラメーターには使用できません。use Rack::Session::File

4

1 に答える 1

1

残念ながら、汚いハックでも不可能です。

したがって、次の 2 つの方法で実行できると思います。

  1. 外部構成ファイル、たとえば routes.yml (config.ru は mapステートメント、アプリケーションが URL 内のそのようなプレフィックスを検出するために使用します);
  2. 環境変数 (Heroku での設定が簡単なので、これを選択しました。
于 2012-11-18T19:11:33.707 に答える