カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

2-2

Bootstrapの導入

まずはBootstrapの導入から行っていきましょう。本パートではBootstrapに関連するファイルの読み込み設定を行い、いつでも使用できる状態にすることを目指していきます。

はじめに

Bootstrapの本体は事前に作成されたCSSとJavaScriptのファイル群になります。これらのファイルをCDNという仕組みを使って読み込んでいきます。

今回編集するファイルは前パートでは触れなかった public/index.htmlとなります。こちらはVueプロジェクトの大元となるHTMLファイルであり、本教材では共通で使いたいファイルを読み込む場合でのみ使用します。

Copied!
📁 vue-notion ┗ 📁 public ┗ 📄 index.html

【用語解説】 CDN

CDN(Content Delivery Network)とは、多くのユーザに向けてコンテンツを効率的に配信するために構成された仕組みです。

コンテンツを提供しているサーバが1台だけだと、アクセスが集中することで負荷が増大したり、物理的な距離が離れているせいでダウンロードに時間がかかるといったことが起こりえます。そこで、同一のコンテンツを返してくれるサーバを全世界に配置し、ユーザからより近いサーバに対してコンテンツデータを取りに行かせるようにすることで、負荷分散とレスポンス速度向上を実現できるようになるのです。

ユーザとして使用する場合には裏側の仕組みは特に意識する必要はないので、概要だけ知っておけばOKです。

作業手順

本教材ではBoostrapのバージョン4.6を対象にしていますのでBootstrap v4.6導入ページ を参考に作業を進めていきます。リンクにアクセスし、記載されているコードをコピーして貼り付けていきましょう。

CSS読み込み設定

まずCSS欄のCopyボタンを押し、public/index.html内の<head>タグ内<link>タグの一番上に貼り付けます。
Image from Gyazo

変更差分としては以下のようなイメージです。わかりやすくするためコメントを追記しています。

public/index.html
123456789101112
++
Copied!
<!DOCTYPE html> <html lang=""> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <title><%= htmlWebpackPlugin.options.title %></title> </head> ︙

JavaScript読み込み設定

次にJS > Bundle 欄のCopyボタンを押し、今度は</body>の直前に貼り付けます。
Image from Gyazo

変更差分としては以下のようなイメージです。こちらもわかりやすくするためコメントを追記しています。

public/index.html
123456789101112
+++
Copied!
︙ <body> <noscript> <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> <div id="app"></div> <!-- built files will be auto injected --> <!-- Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script> </body> </html>

変更差分

全体としては以下のようなコードになっていればOKです。

public/index.html
12345678910111213141516171819202122
++ +++
Copied!
<!DOCTYPE html> <html lang=""> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <title><%= htmlWebpackPlugin.options.title %></title> </head> <body> <noscript> <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> <div id="app"></div> <!-- built files will be auto injected --> <!-- Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script> </body> </html>