尝试使用Combres Nuget Package缓存图像js文件时遇到问题

时间:2013-08-15 13:51:27

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

以下是我的Fidler。

enter image description here

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

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


说明

我正在使用MVC3。我在程序包管理器控制台

中安装了 Nuget Package combres
Install-Package combres.mvc

以下是我的路线表的证据

enter image description here

我的布局中有两个文件。

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

Combress.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

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

1 个答案:

答案 0 :(得分:2)

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

Install-Package combres.mvc 

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

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

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

根据documentation,这是标准建议。

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

还有其他注意事项,但这应该足以开始。