学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Rails6.1 | 民泊予約アプリ作成 | 04 | Bootstrap5.3の利用

↓↓クリックして頂けると励みになります。



03 | アプリケーションの作成】 << 【ホーム】 >> 【05 | deviceの利用

Bootstrap5.3の利用
Bootstrap5.3の利用


Bootstrap5.3を利用する準備をします。


Bootstrap5.3を動かすために必要なパッケージをYarnでインストールします。
必要なパッケージは「jquery」と「popper.js」「popperjs/core」です。


コマンド
yarn add jquery@3.6.0 popper.js@1.16.1 @popperjs/core@2.11.8


「app/assets/stylesheets」フォルダにある「application.css」ファイルを「application.scss」にリネームします。
拡張子をscssにしています。



Bootstrap4.xの時ははこのリネームファイルにBootstrapのスタイルを読み込ませる記述をしていましたが、Bootstrap5.3ではHerokuデプロイ時にスタイルシートが読み込めない問題があるため、ここでは何も記述しなくて大丈夫です。


「app/javascript/packs/application.js」ファイルにjQueryを読み込ませる記述を追加します。

require("jquery")



記述追加 【app/javascript/packs/application.js】16行目

// This file is automatically compiled by Webpack, along with any other files
// present in this directory. You're encouraged to place your actual application logic in
// a relevant structure within app/javascript and only use these pack files to reference
// that code so it'll be compiled.

import Rails from "@rails/ujs"
import Turbolinks from "turbolinks"
import * as ActiveStorage from "@rails/activestorage"
import "channels"

Rails.start()
Turbolinks.start()
ActiveStorage.start()

// jQuery
require("jquery")



Webpackの設定をします。
「config\webpack\environment.js」ファイルに以下の記述を追加します。

const webpack = require('webpack')
environment.plugins.append('Provide',
    new webpack.ProvidePlugin({
        $: 'jquery/src/jquery',
        jQuery: 'jquery/src/jquery',
        Popper: ['popper.js', 'default']
    })
)



記述追加 config\webpack\environment.js(6行目)

const { environment } = require('@rails/webpacker')

module.exports = environment

//Webpack
const webpack = require('webpack')
environment.plugins.append('Provide',
    new webpack.ProvidePlugin({
        $: 'jquery/src/jquery',
        jQuery: 'jquery/src/jquery',
        Popper: ['popper.js', 'default']
    })
)



「app/views/layouts/application.erb.html 」の「stylesheet_link_tag」を「stylesheet_pack_tag」に変更します。
また、Bootstrap5.3を利用するため、CSSとJSをCDN経由でインクルードする記述を追加します。


記述変更 app/views/layouts/application.erb.html(9行目~14行目)

    #削除<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>

    <!-- bootstrap5.3 -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>



app/views/layouts/application.erb.html

<!DOCTYPE html>
<html>
  <head>
    <title>VacationRental</title>
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>

    <!-- bootstrap5.3 -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
  </head>

  <body>
    <%= yield %>
  </body>
</html>



これでBootstrap5.3を使用する準備が整いました。



03 | アプリケーションの作成】 << 【ホーム】 >> 【05 | deviceの利用


↓↓クリックして頂けると励みになります。