ASP.Net MVC 3のWebサイトでT4MVCとChirpyプラグインを使用しています。 T4MVCだけが、Chirpyと.yui.jsのjavascriptファイルで生成された縮小jsファイルを処理できないようです。 Chirpyは.min.jsファイルを生成していますが、デフォルトのT4MVCスクリプトでは.yui.min.jsが必要です。T4MVC Chirpyで生成された縮小jsファイルとcssファイルを処理する
私が変更されている、私はライン983上の
const string ChirpyJSExtension = ".yui";
そしてT4MVC.ttにを追加したことがT4MVC.tt.settings.t4で を動作させるためにT4MVCに以下の調整を行いましたコードは
if (!ExcludedStaticFileExtensions.Any(extension => projectItem.Name.EndsWith(extension, StringComparison.OrdinalIgnoreCase))) {
// if it's a non-minified javascript file
if (projectItem.Name.EndsWith(".js") && !projectItem.Name.EndsWith(".min.js")) {
if (AddTimestampToStaticLink(projectItem)) { #>
public static readonly string <#=Sanitize(projectItem.Name.Replace(ChirpyJSExtension,string.Empty))#> = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/<#=projectItem.Name.Replace(ChirpyJSExtension,string.Empty).Replace(".js", ".min.js")#>") ? Url("<#=projectItem.Name.Replace(ChirpyJSExtension,string.Empty).Replace(".js", ".min.js")#>")+"?"+T4Extensions.TimestampString(URLPATH + "/<#=projectItem.Name#>") : Url("<#=projectItem.Name#>")+"?"+T4Extensions.TimestampString(URLPATH + "/<#=projectItem.Name#>");
<#+} else {#>
public static readonly string <#=Sanitize(projectItem.Name.Replace(ChirpyJSExtension,string.Empty))#> = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/<#=projectItem.Name.Replace(ChirpyJSExtension,string.Empty).Replace(".js", ".min.js")#>") ? Url("<#=projectItem.Name.Replace(ChirpyJSExtension,string.Empty).Replace(".js", ".min.js")#>") : Url("<#=projectItem.Name#>");
<#+} #>
<#+}
// if it's a non-minified css file
else if (projectItem.Name.EndsWith(".css") && !projectItem.Name.EndsWith(".min.css")) {
if (AddTimestampToStaticLinks) { #>
public static readonly string <#=Sanitize(projectItem.Name)#> = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/<#=projectItem.Name.Replace(ChirpyJSExtension,string.Empty).Replace(".js", ".min.js")#>") ? Url("<#=projectItem.Name.Replace(ChirpyJSExtension,string.Empty).Replace(".css", ".min.css")#>")+"?"+T4Extensions.TimestampString(URLPATH + "/<#=projectItem.Name#>") : Url("<#=projectItem.Name#>")+"?"+T4Extensions.TimestampString(URLPATH + "/<#=projectItem.Name#>");
<#+} else {#>
public static readonly string <#=Sanitize(projectItem.Name)#> = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(URLPATH + "/<#=projectItem.Name.Replace(ChirpyJSExtension,string.Empty).Replace(".js", ".min.js")#>") ? Url("<#=projectItem.Name.Replace(ChirpyJSExtension,string.Empty).Replace(".css", ".min.css")#>") : Url("<#=projectItem.Name#>");
<#+} #>
<#+}
else if (AddTimestampToStaticLink(projectItem)) { #>
public static readonly string <#=Sanitize(projectItem.Name)#> = Url("<#=projectItem.Name#>")+"?"+T4Extensions.TimestampString(URLPATH + "/<#=projectItem.Name#>");
<#+}
else { #>
public static readonly string <#=Sanitize(projectItem.Name)#> = Url("<#=projectItem.Name#>");
<#+}
} #>
このようなスクリプトは含まれていませんが、他の解決策は見当たりませんでした。
だから誰もこれのために、デフォルトのT4MVCスクリプトだけを残すよりよい解決策を持っていますか?
私はWayne Brantley(http://twitter.com/#!/waynebrantley)がこれに関連してほとんどの変更を行い、コメントがあると思います。 –