首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET:压缩jQuery时,梳子会导致'$ is undefined‘

ASP.NET:压缩jQuery时,梳子会导致'$ is undefined‘
EN

Stack Overflow用户
提问于 2011-01-22 00:09:01
回答 2查看 970关注 0票数 3

对于任何知道如何使用梳子的人来说,这是为你准备的:

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

代码语言:javascript
复制
<?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运行良好,并且所有引用都可以正常工作。你知道为什么会发生这样的事情吗?日志显示没有任何异常。

输出:

代码语言:javascript
复制
//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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-27 00:12:19

有趣的是,梳子肯定有一些问题。一些JQuery源文件可以工作,而另一些则不行,这归结于它在某些情况下是如何缩小的。Combres有一些错误需要解决。

票数 2
EN

Stack Overflow用户

发布于 2012-06-01 02:23:52

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4760967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档