我正在使用T4MVC和ASP.Net MVC 3网站中的Chirpy插件,我很喜欢这两个网站。只有T4MVC似乎无法处理由Chirpy和.yui.js javascript文件生成的缩小的js文件。Chirpy正在生成.min.js文件,但是默认的T4MVC脚本需要.yui.min.js。
我已经对T4MVC.tt.settings.t4中的T4MVC做了如下调整,以使其在我添加的
const string ChirpyJSExtension = ".yui";在第983行的T4MVC.tt中,我更改了
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脚本呢?
发布于 2011-08-09 19:41:00
新版本的chirpy解决了这个问题。http://chirpy.codeplex.com/SourceControl/changeset/changes/ab7715fabba6
https://stackoverflow.com/questions/6615898
复制相似问题