そのため、クライアント用にいくつかの異なるマイクロサイトをホストするアプリで作業しているsinatraアプリがあります。public および views ディレクトリを構造化する方法は次のとおりです。
sites/
site1/
public/
style.css
views/
layout.haml
general.haml
site2/
public/
style.css
views/
layout.haml
general.haml
リクエストが来ると、次の 2 行が表示されます。
set :views, Proc.new { File.join(root, "sites/#{site}/views") }
set :public, Proc.new { File.join(root, "sites/#{site}/public") }
着信要求が着信し、サイトが「site1」として定義されると、ビューは適切なフォルダーからレンダリングされて、希望どおりに機能します。ただし、「/style.css」ルートを呼び出すと、404 エラーが返されます。
アプリのルートにパブリック ディレクトリを作成し、そこに style.css を配置すると、正常に動作します。ただし、これはサイトごとに機能する必要があります。Sinatraの公式ドキュメントから外れますが、設定してもまだ機能しません
enable :static
または私が使用する場合
set :static, true
ドキュメントに記載されているとおりです。何か案は?