3

对于任何了解使用 Combres 的专业知识的人,这是为您准备的:

我的 Combres.XML 看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
<combres xmlns='urn:combres'>

  <filters>
    <filter type="Combres.Filters.FixUrlsInCssFilter, Combres" />
  </filters >
  <cssMinifiers>
    <minifier name="yui" type="Combres.Minifiers.YuiCssMinifier, Combres">
      <param name="CssCompressionType" type="string" value="StockYuiCompressor" />
      <param name="ColumnWidth" type="int" value="-1" />
    </minifier>
  </cssMinifiers>
  <jsMinifiers>
    <minifier name="yui" type="Combres.Minifiers.YuiJSMinifier, Combres">
      <param name="IsVerboseLogging" type="bool" value="false" />
      <param name="IsObfuscateJavascript" type="bool" value="true" />
      <param name="PreserveAllSemicolons" type="bool" value="false" />
      <param name="DisableOptimizations" type="bool" value="true" />
      <param name="LineBreakPosition" type="int" value="-1" />
    </minifier>
  </jsMinifiers>
  <resourceSets url="~/combres.axd" defaultDuration="30"
                                defaultVersion="auto"
                                defaultDebugEnabled="false"
                                defaultCssMinifierRef="off" 
                                defaultJSMinifierRef="off"> 
    <resourceSet name="siteCss" type="css" minifierRef="yui">
      <resource path="~/css/jquery-ui-1.7.2.custom.css"  />
      <resource path="~/css/OMNIv2.css" />
      <resource path="~/css/dataTable.css" />
    </resourceSet>
    <resourceSet name="siteJs" type="js" >
      <resource path="~/js/jquery-1.4.2.min.js" minifierRef="off" />
      <resource path="~/js/jquery.jstree.min.js" minifierRef="off" />
      <resource path="~/js/jquery.dataTables.min.js" minifierRef="off" />
      <resource path="~/js/jquery.cookie.min.js" minifierRef="off" />
      <resource path="~/js/jquery-ui-1.7.2.custom.min.js" minifierRef="off" />
      <resource path="~/js/jquery.collapsible-v.2.1.3.js" minifierRef="yui" />
      <resource path="~/js/jquery.fileupload.js" minifierRef="yui" />
      <resource path="~/js/original/OMNIv2.js" minifierRef="yui" />
    </resourceSet>
  </resourceSets>
</combres>

将defaultDebugEnabled 设置为false,即模块现在将开始运行...内联Javascript 和我的ClientRegisterScriptBlocks 之一炸毁说'$ 未定义'。显然,jQuery 没有被加载或以某种方式被破坏。如果我真的在 defaultDebugEnabled 设置为 true 的情况下运行它,那么组合的 JS 运行良好并且所有引用都有效。有什么想法为什么会发生这种情况?日志显示没有任何异常。

输出:

//These are from the master page
<link rel="stylesheet" type="text/css" href="/combres.axd/siteCss/1/"/>
<script type="text/javascript" src="/combres.axd/siteJs/a/"></script>

// This is in my Default.aspx 
<script type="text/javascript" >
   function pageLoad() {
    var $NavSlider = $("#NavSlider"); // THIS DOESN'T WORK, $ is undefined
   }
</script>
4

2 回答 2

2

有趣的是,Combres 肯定有一些问题。一些 JQuery 源文件可以工作,而另一些则不能。它归结为在某些情况下它是如何被缩小的。Combres 有一些错误可以解决 IMO。

于 2011-04-26T16:12:18.853 回答
0

Combres 遇到问题是因为它试图合并和缩小已经缩小的文件。尝试使用完整的、未缩小的 javascript 文件。

于 2012-05-31T18:23:51.573 回答