ASP.NET Core で、site.css
を変更したのに site.min.css
に変更が反映されずちょっとはまったので調べてみました。
結論としては、BundlerMinifier
がインストールされていませんでした。
Bundle と Minify については以下のページで解説されています。
環境
- Visual Studio 2017
- ASP.NET Core 2.0
ASP.NET Core における CSS と js ファイルの圧縮
ASP.NET Core のテンプレートプロジェクトでは、基本的に JavaScript は wwwroot/js/site.js
に、スタイルシートは wwwroot/css/site.css
にコードを追加していきます(もちろん自分でファイルを追加することもできます)。
追加したコードやファイルはビルド時に縮小(Minify)され、それぞれ wwwroot/js/site.min.js
wwwroot/css/site.min.css
というファイルに統合(Bundle)されます。
この Bundle と Minify の作成ルールは、bundleconfig.json
に記載されています。
尚、ASP.NET Core 2.0 のテンプレートプロジェクトだと、これらは全て設定済みの状態です。
なので、プロジェクトの発行を行ったときにも、site.min.js
site.min.css
は自動で作成されるものだと思っていました。
というかそんな感じで Microsoft のページでも説明されていますし、Visual Studio で bundleconfig.json
を開いたときに特に拡張機能のインストールなども促されなかったですし。
しかし、私の場合、実際にはプロジェクトの発行時に site.min.js
site.min.css
が作成されず、調べたところ BundlerMinifier
がインストールされていないことがわかりました。
というわけで、NuGet で BundlerMinifier
をインストールすると、site.min.js
site.min.css
が作成されるようになりました。
BundlerMinifier のインストール
[パッケージマネージャーコンソール] から以下のコマンドを入力します。
PM> Install-Package BuildBundlerMinifier
インストールが完了した時点で、site.min.js
site.min.css
が自動的に更新されました。
参考 URL
- https://docs.microsoft.com/en-us/aspnet/core/client-side/bundling-and-minification
- https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BundlerMinifier
- https://codezine.jp/article/detail/9747
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjt1_z9mZzXAhXGn5QKHTrsBQoQFggnMAA&url=https%3A%2F%2Fwww.slideshare.net%2Fmiso_desu%2F20161217-aspnet&usg=AOvVaw2JJco29WHf4NeC_049cIks