用于改进向MVC3 Razor页面添加css和脚本资源的工具/加速器

时间:2011-03-14 14:02:53

标签: javascript css resources asp.net-mvc-3 razor

是否有任何工具可以更快地将文件添加到MVC3剃刀页面?

我发现自己不得不将脚本文件拖到页面上以生成:

<script src="../../Scripts/rails.js" type="text/javascript"></script>

然后我会复制并粘贴

<script src="@Url.Content("~/Scripts/")" type="text/javascript"></script>

然后将rails.js片段剪切/拖动到新的脚本语句中。然后在这之后的某个时刻我希望我记得我需要清理一大堆重复和/或破坏的脚本链接。

必须有一种比这更好的方法,不涉及手动输入网址。

2 个答案:

答案 0 :(得分:1)

今天早些时候发现了这篇博客文章ASP.NET MVC Best Practices (Part 1),它的指导显示

public static string Image(this UrlHelper helper, string fileName)
{
    return helper.Content("~/assets/images/{0}".FormatWith(fileName));
}

public static string Stylesheet(this UrlHelper helper, string fileName)
{
    return helper.Content("~/assets/stylesheets/{0}".FormatWith(fileName));
}

public static string NoIcon(this UrlHelper helper)
{
    return Image(helper, "noIcon.png");
}

如果您为资源使用良好的布局方案,这似乎是最佳解决方案。

修改: FWIW

public static string FormatWith(this string format, params object[] inputs)
{
    return string.Format(format, inputs)
}

答案 1 :(得分:0)

您可以使用 T4MVC 对您的链接进行编译时验证。

  

<强> 2.3。强大的脚本文件和静态资源类型链接

     

T4MVC为其生成静态助手   您的内容文件和脚本文件。   所以不要写:

<img src="/Content/nerd.jpg" /> 
  

您   可写:

<img src="<%= Links.Content.nerd_jpg %>" /> 
  

同样,而不是

<script src="/Scripts/Map.js" type="text/javascript"></script> 
  

您   可以写

<script src="<%= Links.Scripts.Map_js %>" type="text/javascript"></script>
  

明显的好处是你会得到   如果你移动或者编译错误   重命名你的静态资源,所以你会   早点抓住它。

     

另一个好处是你得到更多   多功能参考。当你写作   src =“/ Content / nerd.jpg”,您的应用将会   只有在它部署时才有效   网站的根。但是当你使用的时候   帮手,它执行一些服务器端   确保您的参考的逻辑   无论您的网站在哪里都是正确的   根。它通过调用来做到这一点   VirtualPathUtility.ToAbsolute( “〜/内容/ nerd.jpg”)。