に私は私のコードベースでこののコピーをたくさん持っている:構築CSSリンクカミソリビュー
@if (Context.IsDebuggingEnabled)
{
<link rel='stylesheet' href='~/Styles/FrontEnd.css' type='text/css'
}
else
{
<link rel='stylesheet' href='/public/css/FrontEnd-min.css' type='text/css' />
}
そして、これが私を刺激されたので、私は場合は、その引きたかったし、ヘルパーメソッドに複製、私はしました:
public static MvcHtmlString IncludeDebugAwareStylesheet(this HtmlHelper htmlHelper, string debugFileName, string liveFileName)
{
var styleSheetWrapperFormat = "<link rel='stylesheet' href='{0}' type='text/css' />";
var debugInclude = string.Format(styleSheetWrapperFormat, debugFileName);
var liveInclude = string.Format(styleSheetWrapperFormat, liveFileName);
var isDebug = htmlHelper.ViewContext.HttpContext.IsDebuggingEnabled;
return new MvcHtmlString(isDebug ? debugInclude : liveInclude);
}
しかし、CSSファイルは認識されません。 私が知る限り、オリジナルでは~
が削除されていますが、私の新しいコードではそうではありませんか?
これはなぜですか? Razorに何らかの方法でURLを「処理する」ように伝える必要はありますか?
これに対処するためにバンドルとレイアウトを使用するだけではどうですか?リリースビルドとレイアウトで自動的に縮小されて、1つのファイルでCSSを参照するだけのバンドル。 –
これは理想的だと同意しますが、これは旧式のコードベースなので、現段階では実行可能な変更ではありません。 : – Brondahl
タグビルダを使用すると運が増えるかもしれませんが、それ以外の場合は何もわかりません。return文以外では 'debugInclude'ではなく' debugHtml'を参照してください。 –