「Nancy」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
5行目: | 5行目: | ||
==未分類== | ==未分類== | ||
− | + | ===Minify & Bundleを使う=== | |
− | *[[ | + | ASP.NET 4から搭載されたMinify & BundleをNancyから使ってみる。 |
+ | |||
+ | ====NuGetから必要なパッケージを入れる==== | ||
+ | [[ASP.NET]]関連のほとんどが、いつの間にか[[ASP.NET]]本体から分離されて[[NuGet]]へ移行している。[[Linux]]上の[[Mono]]でも[[ASP.NET]]を使えという思し召しらしい。[[Xamarin Studio]]からも一発で入る。 | ||
+ | *https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization/ | ||
+ | |||
+ | ====web.configを編集==== | ||
+ | <pre> | ||
+ | <configuration> | ||
+ | <configSections> | ||
+ | <!-- 追加 --> | ||
+ | <section name="razor" type="Nancy.ViewEngines.Razor.RazorConfigurationSection, Nancy.ViewEngines.Razor" /> | ||
+ | <!-- 追加 --> | ||
+ | </configSections> | ||
+ | |||
+ | <!-- 追加 --> | ||
+ | <razor disableAutoIncludeModelNamespace="false"> | ||
+ | <assemblies> | ||
+ | <add assembly="System.Web.Optimization" /> | ||
+ | <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> | ||
+ | </assemblies> | ||
+ | <namespaces> | ||
+ | <add namespace="System.Web.Optimization" /> | ||
+ | </namespaces> | ||
+ | </razor> | ||
+ | <!-- 追加 --> | ||
+ | |||
+ | <system.webServer> | ||
+ | <!-- 追加 --> | ||
+ | <modules runAllManagedModulesForAllRequests="true"> | ||
+ | <remove name="BundleModule" /> | ||
+ | <add name="BundleModule" type="System.Web.Optimization.BundleModule" /> | ||
+ | </modules> | ||
+ | <!-- 追加 --> | ||
+ | </system.webServer> | ||
+ | </configuration> | ||
+ | </pre> | ||
+ | |||
+ | ====バンドルを登録する==== | ||
+ | どこでもいいので登録内容が記述されたメソッドを作る。 | ||
+ | 純正に右に倣えで「App_Start/BundleConfig.cs」にしておくと無難だと思われる。 | ||
+ | <source lang="csharp"> | ||
+ | using System; | ||
+ | using System.Web.Optimization; | ||
+ | |||
+ | namespace Test | ||
+ | { | ||
+ | public class BundleConfig | ||
+ | { | ||
+ | public static void RegisterBundles(BundleCollection bundles) | ||
+ | { | ||
+ | bundles.Add(new ScriptBundle("~/bundles/jquery").Include( | ||
+ | "~/Scripts/jquery-{version}.js")); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | サーバー起動時に登録する。 | ||
+ | Global.asax.cs(無ければ作る)のApplication_Startメソッドから上記の登録メソッドを呼び出す。 | ||
+ | <source lang="csharp"> | ||
+ | using System; | ||
+ | using System.Web.Optimization; | ||
+ | |||
+ | namespace Test | ||
+ | { | ||
+ | public class Global : System.Web.HttpApplication | ||
+ | { | ||
+ | protected void Application_Start(Object sender, EventArgs e) | ||
+ | { | ||
+ | BundleConfig.RegisterBundles(BundleTable.Bundles); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ====Scripts.Renderの違い==== | ||
+ | ASP.NET 4で標準の記述方法が使えない。 | ||
+ | @Scripts.Render("~/bundles/jquery") | ||
+ | 以下を使うことで代用する。 | ||
+ | @Html.Raw(Scripts.Render("~/bundles/jquery").ToString()) | ||
+ | ToStringを忘れると[[Razor]]が落ちる。凄い嵌った。 | ||
==関連項目== | ==関連項目== |