私はAngular2 beta.15とwebpack 1.12.14を使用しています。Angular2/Webpack:CSSファイル内に読み込まれるフォントを読み込む方法は?
私はapp.component.ts
に1つの.cssファイルと1つの.scssファイルをこのようなグローバルパターンとして持っています。 webpack.config.js
で
@Component({
selector: 'my-app',
templateUrl: 'app/app.component.html',
styles: [
require('../stylesheets/css/main.min.css'),
require('../sass/example.scss')
],
encapsulation: ViewEncapsulation.None,
})
そして、.css
ファイル内で、いくつかのフォントは以下のようにインポートされ、
@font-face {
font-family: 'Helvetica Neue';
src: url(fonts/light/helvetica-neue-light.eot) format("eot"),
url(fonts/light/helvetica-neue-light.woff2) format("woff2"),
url(fonts/light/helvetica-neue-light.woff) format("woff"),
url(fonts/light/helvetica-neue-light.ttf) format("truetype");
font-weight: 300;
font-style: normal
}
、私は.css
ローダー、.scss
、および
{
test: /\.scss$/,
exclude: /node_modules/,
loaders: ['raw-loader', 'sass-loader'] // sass-loader not scss-loader
},
{
test: /.(png|woff(2)?|eot|ttf|svg)(\?[a-z0-9=\.]+)?$/,
loader: 'url-loader'
},
{
test: /\.css$/,
loaders: ['style', 'css']
},
と、以下のようなフォントを持っていますwebpack -display-error-details
を実行したところ、エラーはまったくありませんでしたが、アプリケーションを実行するためにサーバーを起動したとき、以下のようなエラーが発生しました
EXCEPTION: Error during instantiation of Token Promise<ComponentRef>!.
ORIGINAL EXCEPTION: Expected 'styles' to be an array of string
私は
{
test: /\.css$/,
loader: 'url-loader' //or use 'raw-loader'
},
にCSSローダーを変更した場合、これらの例外が消失し、アプリが起動しましたが、私は、ブラウザのコンソールでこれらのフォントのためのいくつかの404個の要求のエラーを得た、彼らは時にロードされていませんすべて。 それで、あなたに私にいくつかの指針を与えることができますか?私はローダーの設定に何か間違っていると思う。
URLローダーをCSSのrawローダーにチェーン接続できますか? '['raw-loader'、 'url-loader']' –
@SeanLarkinそれは動作します!それは素晴らしいことです! 'raw-loader'の使い方を説明できますか?私はそれのためのドキュメントを見つけることができません。 –
ええ、私はいくつかの説明と答えを作成します。 –