概要
わざわざファイルにして public 配下に置いて配信しないでも Sinatra で直接記載することもできます
環境
- macOS 11.6.5
- Ruby 3.1.1p18
- Sinatra 2.2.0
サンプルコード
# coding: utf-8
require 'sinatra'
class WebApp < Sinatra::Base
# HTMLのテンプレートを管理
template :index do
<<~EOF
<html>
<body>
<div id="msg"></div>
<script src="/js/sample.js"></script>
</body>
</html>
EOF
end
# / に来たら :index テンプレートを返却してHTMLを表示する
get '/' do
erb :index
end
# :index テンプレート内で参照している /js/sample.js をここで配信する
get '/js/sample.js' do
content_type 'text/javascript'
<<~EOF
var msg = document.getElementById("msg");
console.log(msg);
document.getElementById("msg").innerHTML = "hoge";'
EOF
end
end
ヒアドキュメントで記載すれば複数行でも書けます
簡単な JavaScript であればこれでもいいかも
0 件のコメント:
コメントを投稿