sinatraをブラウザで更新したら反映されるようにする-さくらのVPS

前回sinatraで実際に文字を表示してみる-さくらのVPSでsinatraで書いた文字を実際に表示してみました。この文章を使っていきます。

前回のおさらい

myapp.rbに以下の文章を書きブラウザで「こんにちは」と表示しました。

require 'sinatra'

#TOPページ
get '/' do
    'こんにちは'
end

今回は「こんにちは」の部分を「こんばんは」と変えて見たいと思います。ソースは以下のようになります。

require 'sinatra'

#TOPページ
get '/' do
    'こんばんは'
end

これを保存してFTPなどでアップしてください。そしてブラウザの更新を押してください。おそらく更新おしても反映されないと思います。

Apacheの再起動をしてみる

apache_logw_title

一度SSHでApacheを再起動してみたいと思います。

# systemctl restart httpd

再起動したら再度ブラウザの更新をしてください。今度は反映されると思います。

sinatraはデフォルトではブラウザ更新しても反映されない

sinatraはオートリロード機能というのがいまのままではないため、実装したいと思います。CentOS7でsinatraのインストール方法-さくらのVPSのページで既に必要なsinatra-reloaderというのがインストールされています。これを使いたいと思います。

ファイルを変更

myapp.rbファイルを変更します。

require 'sinatra'
require 'sinatra/reloader' #追加します

#TOPページ
get '/' do
    'こんにちは'
end

1行追加します。これをアップしますがこれだけだと意味がないのでファイル構成を少々変えます。

always_restart.txtの作成してアップロード

/home/logw/sinatra/public
        ├──/tmp
        │  └always_restart.txt
        ├──config.ru
        └──myapp.rb

/tmpフォルダの中にalways_restart.txtという空テキストを作成してアップロードします。これで自動更新できるようになります。