2

下面是我的提琴手。

在此处输入图像描述

如果你注意上面的截图,每次刷新都会下载 js 和 css 文件。为什么?

我对 Combres 的功能有疑问。Url.Compress 可以缓存 css 文件。正确的?如果您从物理位置删除 css 文件。我收到 404 错误?为什么?因为这个文件被缓存了。所以它不应该从它的物理位置被挑选出来。相反,它应该从缓存中挑选出来。正确的?


解释

我正在使用 MVC3。我已经在包管理器控制台中安装了Nuget 包梳

Install-Package combres.mvc

下面是我的路由表的证明

在此处输入图像描述

我的布局中有以下两个文件。

<link href=""~/Content/Site.css" type="text/css" />
<script src="~/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>

Compress.xml 设置

<combres xmlns='urn:combres'>
  <filters>
    <filter type="Combres.Filters.FixUrlsInCssFilter, Combres" />
  </filters>
  <resourceSets url="~/combres.axd"
                defaultDuration="30"
                defaultVersion="auto"
                defaultDebugEnabled="auto"
                defaultIgnorePipelineWhenDebug="true"
                localChangeMonitorInterval="30"
                remoteChangeMonitorInterval="60"
                >
    <resourceSet name="siteCss" type="css">
      <resource path="~/content/Site.css" />
    </resourceSet>
    <resourceSet name="siteJs" type="js">
      <resource path="~/scripts/jquery-1.7.1.min.js" />
    </resourceSet>
  </resourceSets>
</combres>

当我执行以下路径时

http://localhost:2474/Home/About

我想,它每次都在下载上述文件。根据我的理解,combrress 应该缓存在 combres.xml 设置中提到的文件的 images/css/js 文件。

4

1 回答 1

2

您需要以不同的方式引用文件。由于您使用的是 asp.net-mvc,我建议您也安装这个互补的 nuget 包

Install-Package combres.mvc 

然后在您的母版页中,或任何您想要不同资源的地方

@Url.CombresLink("siteCss")
@Url.CombresLink("siteJs")

注意:在添加上述代码行之前。@using Combres.Mvc;在您的布局页面中添加。

这是文档中的标准建议。

请注意,您可能希望在调试模式下拥有完整的源代码,并且只在发布模式下组合,这是您的资源集上的设置: defaultDebugEnabled="auto"

还有其他考虑因素,但这应该足以开始。

于 2013-08-15T13:56:07.520 回答