|
|
(同じ利用者による、間の2版が非表示) |
5行目: |
5行目: |
| | | |
| ==未分類== | | ==未分類== |
− | ===Minify & Bundleを使う===
| + | *[[Nancy/静的コンテンツを扱う]] |
− | ASP.NET 4から搭載されたMinify & BundleをNancyから使ってみる。
| + | *[[Nancy/Minify & Bundleを使う]] |
− | | |
− | ====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]]が落ちる。凄い嵌った。
| |
| | | |
| ==関連項目== | | ==関連項目== |