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 の 1 つが「$ は未定義」と言って爆発します。明らかに、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 に答える