create-react-appベースのプロジェクトにフォントを追加するにはどうすればよいですか?

マキシムエクスチェンジ:

私が使用しています反応するアプリを作成し、したくありませんeject

@ font-faceを介してインポートされ、ローカルにロードされたフォントをどこに置くべきかは明確ではありません。

つまり、ロードしています

@font-face {
  font-family: 'Myriad Pro Regular';
  font-style: normal;
  font-weight: normal;
  src: local('Myriad Pro Regular'), url('MYRIADPRO-REGULAR.woff') format('woff');
}

助言がありますか?

-編集

ダンが回答に言及した要点を含める

➜  Client git:(feature/trivia-game-ui-2) ✗ ls -l public/static/fonts
total 1168
-rwxr-xr-x@ 1 maximveksler  staff  62676 Mar 17  2014 MYRIADPRO-BOLD.woff
-rwxr-xr-x@ 1 maximveksler  staff  61500 Mar 17  2014 MYRIADPRO-BOLDCOND.woff
-rwxr-xr-x@ 1 maximveksler  staff  66024 Mar 17  2014 MYRIADPRO-BOLDCONDIT.woff
-rwxr-xr-x@ 1 maximveksler  staff  66108 Mar 17  2014 MYRIADPRO-BOLDIT.woff
-rwxr-xr-x@ 1 maximveksler  staff  60044 Mar 17  2014 MYRIADPRO-COND.woff
-rwxr-xr-x@ 1 maximveksler  staff  64656 Mar 17  2014 MYRIADPRO-CONDIT.woff
-rwxr-xr-x@ 1 maximveksler  staff  61848 Mar 17  2014 MYRIADPRO-REGULAR.woff
-rwxr-xr-x@ 1 maximveksler  staff  62448 Mar 17  2014 MYRIADPRO-SEMIBOLD.woff
-rwxr-xr-x@ 1 maximveksler  staff  66232 Mar 17  2014 MYRIADPRO-SEMIBOLDIT.woff
➜  Client git:(feature/trivia-game-ui-2) ✗ cat src/containers/GameModule.css
.GameModule {
  padding: 15px;
}

@font-face {
  font-family: 'Myriad Pro Regular';
  font-style: normal;
  font-weight: normal;
  src: local('Myriad Pro Regular'), url('%PUBLIC_URL%/static/fonts/MYRIADPRO-REGULAR.woff') format('woff');
}

@font-face {
  font-family: 'Myriad Pro Condensed';
  font-style: normal;
  font-weight: normal;
  src: local('Myriad Pro Condensed'), url('%PUBLIC_URL%/static/fonts/MYRIADPRO-COND.woff') format('woff');
}

@font-face {
  font-family: 'Myriad Pro Semibold Italic';
  font-style: normal;
  font-weight: normal;
  src: local('Myriad Pro Semibold Italic'), url('%PUBLIC_URL%/static/fonts/MYRIADPRO-SEMIBOLDIT.woff') format('woff');
}

@font-face {
  font-family: 'Myriad Pro Semibold';
  font-style: normal;
  font-weight: normal;
  src: local('Myriad Pro Semibold'), url('%PUBLIC_URL%/static/fonts/MYRIADPRO-SEMIBOLD.woff') format('woff');
}

@font-face {
  font-family: 'Myriad Pro Condensed Italic';
  font-style: normal;
  font-weight: normal;
  src: local('Myriad Pro Condensed Italic'), url('%PUBLIC_URL%/static/fonts/MYRIADPRO-CONDIT.woff') format('woff');
}

@font-face {
  font-family: 'Myriad Pro Bold Italic';
  font-style: normal;
  font-weight: normal;
  src: local('Myriad Pro Bold Italic'), url('%PUBLIC_URL%/static/fonts/MYRIADPRO-BOLDIT.woff') format('woff');
}

@font-face {
  font-family: 'Myriad Pro Bold Condensed Italic';
  font-style: normal;
  font-weight: normal;
  src: local('Myriad Pro Bold Condensed Italic'), url('%PUBLIC_URL%/static/fonts/MYRIADPRO-BOLDCONDIT.woff') format('woff');
}

@font-face {
  font-family: 'Myriad Pro Bold Condensed';
  font-style: normal;
  font-weight: normal;
  src: local('Myriad Pro Bold Condensed'), url('%PUBLIC_URL%/static/fonts/MYRIADPRO-BOLDCOND.woff') format('woff');
}

@font-face {
  font-family: 'Myriad Pro Bold';
  font-style: normal;
  font-weight: normal;
  src: local('Myriad Pro Bold'), url('%PUBLIC_URL%/static/fonts/MYRIADPRO-BOLD.woff') format('woff');
}
そしてアブラモフ:

2つのオプションがあります。

インポートの使用

これは推奨されるオプションです。これにより、フォントがビルドパイプラインを通過し、コンパイル中にハッシュが取得されるため、ブラウザーのキャッシュが正しく機能し、ファイルが見つからない場合はコンパイルエラーが発生します。

「追加画像、フォント、およびファイル」で説明した、あなたはJSからインポートCSSファイルを持っている必要があります。たとえば、デフォルトでは次のようにsrc/index.jsインポートされますsrc/index.css

import './index.css';

このようなCSSファイルはビルドパイプラインを通過し、フォントや画像を参照できます。あなたがフォントを入れている場合たとえば、src/fonts/MyFont.woffあなたindex.cssかもしれないが、これを次のとおりです。

@font-face {
  font-family: 'MyFont';
  src: local('MyFont'), url(./fonts/MyFont.woff) format('woff');
}

で始まる相対パスを使用していることに注目してください./これは、ビルドパイプライン(Webpackを利用)がこのファイルを見つけるのに役立つ特別な表記です。

通常はこれで十分です。

publicフォルダを使用する

何らかの理由でビルドパイプラインを使用せ、代わりに「クラシックな方法」で実行する場合は、publicフォルダー使用してそこにフォントを配置できます。

このアプローチの欠点は、本番用にコンパイルするときにファイルがハッシュを取得しないため、ファイルを変更するたびにファイルの名前を更新する必要があります。そうしないと、ブラウザーが古いバージョンをキャッシュします。

この方法で実行する場合は、フォントをpublicフォルダーのどこかに配置します(例:)public/fonts/MyFont.woffこのアプローチに従う場合は、CSSファイルpublicもフォルダーに入れ、JSからインポートしないでください。これらのアプローチを混在させると非常に混乱するためです。したがって、それでも実行したい場合は、のようなファイルが作成されますpublic/index.css<link>このスタイルシートに手動で追加する必要がありますpublic/index.html

<link rel="stylesheet" href="%PUBLIC_URL%/index.css">

その中で、通常のCSS表記を使用します。

@font-face {
  font-family: 'MyFont';
  src: local('MyFont'), url(fonts/MyFont.woff) format('woff');
}

fonts/MyFont.woffパスとして使用していることに注意してくださいこれは、index.csspublicフォルダー内にあるため、パブリックパスから提供されるためです(通常はサーバールートですが、GitHub Pagesにデプロイしてhomepageフィールドをhttp://myuser.github.io/myproject設定した場合は、から提供されます/myproject)。ただしfontspublicフォルダにもあるため、fonts比較的(http://mywebsite.com/fontsまたはのいずれhttp://myuser.github.io/myproject/fontsから提供されます。したがって、相対パスを使用します。

この例ではビルドパイプラインを回避しているため、ファイルが実際に存在するかどうかは検証されないことに注意してください。これが、私がこのアプローチを推奨しない理由です。もう1つの問題は、index.cssファイルが縮小されず、ハッシュも取得されないことです。そのため、エンドユーザーにとっては遅くなり、ブラウザが古いバージョンのファイルをキャッシュするリスクがあります。

 どちらの方法を使用しますか?

最初の方法(「インポートの使用」)に進みます。それはあなたがしようとしたことなので(コメントで判断して)、2番目の1つだけを説明しましたが、多くの問題があり、いくつかの問題を回避するときの最後の手段にすぎません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

create-react-appベースのプロジェクトを実行するポートを指定するにはどうすればよいですか?

分類Dev

非常に長いパスを回避し、Create React Appプロジェクト内で絶対パスを使用するにはどうすればよいですか?

分類Dev

create-react-appでビルドされたReactプロジェクトを次のcreate-react-appバージョンにアップグレードするにはどうすればよいですか?

分類Dev

サブフォルダーにcreate-react-appを含むノードプロジェクトをGitHubにプッシュするにはどうすればよいですか?

分類Dev

create-react-appプロジェクトでServiceWorkerを使用してカスタムオフラインページを作成するにはどうすればよいですか?

分類Dev

create-react-appプロジェクトでbabelを設定するにはどうすればよいですか?

分類Dev

CopyWebpackPluginをイジェクトせずにcreate-react-appに追加するにはどうすればよいですか?

分類Dev

create-react-appでicomoonによって作成されたフォントアイコンを使用するにはどうすればよいですか?

分類Dev

create-react-appを取得して、スクリプトパスに先頭のドットを含めるにはどうすればよいですか?

分類Dev

create-react-appでCSSビルドをイジェクトせずに無効にするにはどうすればよいですか?

分類Dev

create-react-appでJestテストフレームワークを更新するにはどうすればよいですか?

分類Dev

create-react-native-appのapkファイルを生成するにはどうすればよいですか(EXPO.IOコンポーネントを使用)

分類Dev

create-react-appでReact自体のグローバル変数を使用するにはどうすればよいですか(または、Reactをどこにでもインポートしないようにする)?

分類Dev

create-react-native-appにjest固有のセットアップを追加するにはどうすればよいですか?

分類Dev

Create React App 3.0でIE 11をサポートするにはどうすればよいですか?

分類Dev

create reactアプリを使用して特定のReactコンポーネントに画像を表示するにはどうすればよいですか?

分類Dev

create-react-appでcssモジュールを使用するにはどうすればよいですか?

分類Dev

create-react-appで `src`フォルダを別のフォルダに変更するにはどうすればよいですか

分類Dev

create-react-appからクラス宣言を取得するにはどうすればよいですか?

分類Dev

サーバーからcreate-react-appインデックスを適切に提供するにはどうすればよいですか?

分類Dev

create-react-appの使用中にnpmのバージョンを変更するにはどうすればよいですか?

分類Dev

create-react-app:特定のブラウザーで「npmスタート」するにはどうすればよいですか?

分類Dev

create-react-appを使用してリストの上位1人のユーザー(リーダーボードテーブル)に画像を追加するにはどうすればよいですか?

分類Dev

create-react-appを使用してReactアプリケーションを作成した後にReduxをインストールするにはどうすればよいですか?

分類Dev

create-react-appでprodバージョンとdevバージョンを分割するにはどうすればよいですか?

分類Dev

create-react-appでAPIキーを非表示にするにはどうすればよいですか?

分類Dev

CSSモジュールをロードしないcreate-react-appを修正するにはどうすればよいですか?

分類Dev

create-react-appは、reactでプロジェクトを開始するための良い方法ですか?

分類Dev

create-react-appでscssファイルを使用するにはどうすればよいですか?

Related 関連記事

  1. 1

    create-react-appベースのプロジェクトを実行するポートを指定するにはどうすればよいですか?

  2. 2

    非常に長いパスを回避し、Create React Appプロジェクト内で絶対パスを使用するにはどうすればよいですか?

  3. 3

    create-react-appでビルドされたReactプロジェクトを次のcreate-react-appバージョンにアップグレードするにはどうすればよいですか?

  4. 4

    サブフォルダーにcreate-react-appを含むノードプロジェクトをGitHubにプッシュするにはどうすればよいですか?

  5. 5

    create-react-appプロジェクトでServiceWorkerを使用してカスタムオフラインページを作成するにはどうすればよいですか?

  6. 6

    create-react-appプロジェクトでbabelを設定するにはどうすればよいですか?

  7. 7

    CopyWebpackPluginをイジェクトせずにcreate-react-appに追加するにはどうすればよいですか?

  8. 8

    create-react-appでicomoonによって作成されたフォントアイコンを使用するにはどうすればよいですか?

  9. 9

    create-react-appを取得して、スクリプトパスに先頭のドットを含めるにはどうすればよいですか?

  10. 10

    create-react-appでCSSビルドをイジェクトせずに無効にするにはどうすればよいですか?

  11. 11

    create-react-appでJestテストフレームワークを更新するにはどうすればよいですか?

  12. 12

    create-react-native-appのapkファイルを生成するにはどうすればよいですか(EXPO.IOコンポーネントを使用)

  13. 13

    create-react-appでReact自体のグローバル変数を使用するにはどうすればよいですか(または、Reactをどこにでもインポートしないようにする)?

  14. 14

    create-react-native-appにjest固有のセットアップを追加するにはどうすればよいですか?

  15. 15

    Create React App 3.0でIE 11をサポートするにはどうすればよいですか?

  16. 16

    create reactアプリを使用して特定のReactコンポーネントに画像を表示するにはどうすればよいですか?

  17. 17

    create-react-appでcssモジュールを使用するにはどうすればよいですか?

  18. 18

    create-react-appで `src`フォルダを別のフォルダに変更するにはどうすればよいですか

  19. 19

    create-react-appからクラス宣言を取得するにはどうすればよいですか?

  20. 20

    サーバーからcreate-react-appインデックスを適切に提供するにはどうすればよいですか?

  21. 21

    create-react-appの使用中にnpmのバージョンを変更するにはどうすればよいですか?

  22. 22

    create-react-app:特定のブラウザーで「npmスタート」するにはどうすればよいですか?

  23. 23

    create-react-appを使用してリストの上位1人のユーザー(リーダーボードテーブル)に画像を追加するにはどうすればよいですか?

  24. 24

    create-react-appを使用してReactアプリケーションを作成した後にReduxをインストールするにはどうすればよいですか?

  25. 25

    create-react-appでprodバージョンとdevバージョンを分割するにはどうすればよいですか?

  26. 26

    create-react-appでAPIキーを非表示にするにはどうすればよいですか?

  27. 27

    CSSモジュールをロードしないcreate-react-appを修正するにはどうすればよいですか?

  28. 28

    create-react-appは、reactでプロジェクトを開始するための良い方法ですか?

  29. 29

    create-react-appでscssファイルを使用するにはどうすればよいですか?

ホットタグ

アーカイブ