1

我有这个:

bundles.Add(new StyleBundle("~/Content/Styles/Default").Include("~/Content/Styles/Default/Site.css"));

在我的网站上,我有这个:

@section Styles
{
    @Styles.Render("~/Content/Styles/Default"))
}

我的 _Layout.cshtml 看起来像这样:

@RenderSection("Styles", true)

一切看起来都不错,嗯?嗯,不是真的。当我在发布模式下编译我的应用程序并决定发布它时,它呈现的是:

<link href="/Content/Styles/Default?v=78dkNySP_xsiuzsgxCx_GGnnHzYS-B8nNdnXqcl47XI1" rel="stylesheet">

它不是生成文件的href,而是生成某种id?指导?为什么?哦

4

1 回答 1

3

这就是捆绑包的工作方式。它的主要目的是让您将多个 CSS(以及 JS 文件)文件组合到一个包中。例如,您不再需要将所有 css(和 js)放入一个巨大的文件中。只需将其拆分为多个部分,然后将其添加到您的捆绑包中,然后将其打包成一个项目。网络请求越少,页面加载时间越快。

例如,假设您有 2 个 css 文件。一个是主要的,但你的菜单系统有一个。

bundles.Add(new StyleBundle("~/Content/Styles/Default").Include(
        "~/Content/Styles/Default/Site.css",
        "~/Content/Styles/Default/Menu.css"));

这将在 URL 上显示为带有 GUID 类型代码(以防止缓存文件更改)的单个调用。此 URL 将链接到缩小和捆绑的 css。

但我的浏览器无法读取!文件没有物理路径!

这是一种虚拟文件。MVC 的捆绑使用路由引擎将其指向粒子捆绑的组合和缩小版本。

于 2013-02-18T00:53:56.420 回答