dist
フォルダーで_ng build
_コマンドを使用してプロジェクトをビルドすると、js
ファイルが他のすべてのリソースとともに取得されましたが、assets
のような別のフォルダーにすべての画像とフォントを移動したいと思います。誰かが私を助けてくれますか?
更新:angular.json _"assets": [ "src/favicon.ico", "src/assets" ],
_
私が持っているコンポーネントのscssで:
background-image: url('assets/img/no-notifications.svg');
しかしその結果、次のファイルのdistフォルダーに入りました:
_no-notifications.7e08682a570485d1c108.svg
_
目標は、画像パスをscssファイルで指定されたものと同じに保つことです:_assets/img/no-notifications.svg
_
まだわからない場合は、新しいオプションがangular cli構成( v7.2.1 以降)に追加され、cssリソースを別のフォルダーにコピーします(出力パス)。
"outputPath": "wwwroot",
"resourcesOutputPath": "images"
これを試して
img
内にassets
フォルダを作成します
./assets/img/your_image
のようなパスを使用します
それが動作します。
与えられたソリューション"resourcesOutputPath": "images"
は、画像に対して適切に機能します。しかし、残念ながら*.js
や*.ttf
ファイルなどの他のリソースについても同じようにする必要がある場合は、機能しません。
*.js
ファイルに対してこれを行う方法は次のとおりです。ファイルpackage.json
のscripts
ノードの下に、次のようなpostbuild
というスクリプトを追加します。
resources
)にファイルを移動します<script src="*.js"></script>
のindex.html
を検索して<script src="resources/*.js"></script>
に置き換えます。検索と置換はsed
コマンドラインで行われます(LinuxまたはMacOSのsed
コマンドラインとはいくつかの違いがあることに注意してください)。これがpackage.json
ファイルの最終的な外観です。
{
"name": "my-project",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.json",
"build": "ng build",
"postbuild": "mv ./dist/my-project/*.js ./dist/my-project/*.js.map ./dist/my-project/resources; sed -i -e 's/src=\"/src=\"resources\\//g' dist/my-project/index.html",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
}
}
デフォルトでは、「ng build」コマンド「assets」とその「サブフォルダ」を使用すると、「dist」フォルダに自動的にコピーされます。同じルートレベルに別のフォルダを作成する場合は、「リソース」と言います。
Angular.jsonには、「src/resources」を定義できる「assets」構成があります。
angular.json
"assets": ["src/resources"],