HanamiでNuxt.jsのビルドしたファイルを配信したい

やりたいこと

  • HTML, CSS, JavaScriptはHanamiの app/web/views で書きたくない。
  • Nuxt.jsやcreate-react-appとかで作ったものを public 配下で配信したい
  • ただ Hanami.rb では public/index.html をおいても反映されなかった

やったこと

Hanami::Static#initializerindex オプションを付与する

require 'rack/static'

module Hanami
  class Static < ::Rack::Static
    def initialize(app, root: Hanami.public_directory, header_rules: HEADER_RULES)
      super(app, urls: _urls(root), root: root, header_rules: header_rules, index: 'index.html') # index: 'index.html' を追加
    end
  end
end

動作確認をしたリポジトリ

github.com

Nuxt.js側の設定(srcDir , generate dir を指定を変えたり、 @nuxt/proxy 入れたり)もあります(雑コミットでごめんなさい)

参考