代码之家  ›  专栏  ›  技术社区  ›  BC.

内容文件夹在ASP.NET MVC中是否神圣?

  •  23
  • BC.  · 技术社区  · 15 年前

    内容文件夹对MVC的底层框架是特殊的吗?在路由代码或配置中找不到任何对它的引用。

    我只是想知道静态内容是否可以用不同的方式处理。

    在相关注释中,stackoverflow的脚本和css内容似乎是通过querystring中的版本号来检索的:

    <link href="/Content/all.min.css?v=2516" rel="stylesheet" type="text/css" />
    

    想一想这可能是如何工作的,为什么这会很重要?

    5 回复  |  直到 15 年前
        1
  •  19
  •   Matt Woodard    15 年前

    没有魔力,System.Web.Routing.RouteCollection类具有控制行为的RouteExistingFiles属性。

    默认值为false,这意味着ASP路由不应路由URL,而应返回默认内容。在这种情况下,/content/all.min.css?v=251“完全跳过MVC路由规则。

    如果要为内容文件夹添加路由规则,则需要添加该规则,并将routeexistingfiles设置为true。

        2
  •  5
  •   Marc Gravell    15 年前

    不,内容文件夹不是神圣的。随意使用。

    是版本-如果启用了基于HTTP头的缓存,这是帮助进行版本控制的常见技巧;否则,不能保证所有客户端都使用更新的文件。你会在网上看到很多“foo-v4.js”等;-p

        3
  •  4
  •   Mark S. Rasmussen    15 年前

    我在一些网站上使用相同的技术。我使用它来避免缓存-如果您没有为不同的版本指定不同的URL,客户机可能已经缓存了旧版本。

        4
  •  3
  •   Zhaph - Ben Duguid    15 年前

    只需添加其他有关此的注释-路由系统的工作方式如下:

    一个请求进入,并被定向到路由引擎,然后该引擎通过路由表查找匹配项-按照它们注册的顺序(这就是为什么您应该将更具体的路由放在更一般的路由之前)。

    如果找不到匹配项,路由引擎会将请求传递给IIS以正常处理-这也是在同一应用程序中混合使用ASP.NET WebForms和MVC的方法。

        5
  •  1
  •   Darin Dimitrov    15 年前

    它没有特别的意义。它只是一个仲裁名称。如果使用ASP.NET MVC RC向导,您会发现它在母版页(site.master)中被引用:

    <link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
    

    至于在so中使用的all.min.css,它可以是一个自定义的处理程序,在服务器上执行该处理程序来逐个版本检索压缩的样式表。