2013-10-03 47 views
1
位置

我已經添加了新的JavaScript庫的「ApplicationResources」:比我以前在main.gsp這個庫Grails的控制JavaScript的使用資源

jquerymobile{ 
    resource url:'css/jquery.mobile-1.3.2.css' 
    resource url:'js/jquery.mobile/jquery.js' 
    resource url:'js/jquery.mobile/jquery.mobile-1.3.2.js' 
} 

<g:javascript library="jquerymobile"/> 

    <g:layoutHead/> 
    <r:layoutResources /> 
</head> 
<body>  
    <g:layoutBody/>  
    <div id="spinner" class="spinner" style="display:none;"><g:message code="spinner.alt" default="Loading&hellip;"/></div> 
    <g:javascript library="application"/> 
    <r:layoutResources /> 
</body> 

結果HTML是Grails的符連接兩個JS文件合併成一個,並把腳本標記底。

. 
. 
.  
<div id="spinner" class="spinner" style="display:none;">Loading&hellip;</div> 

    <script src="/Tiv2/static/bundle-bundle_jquerymobile_defer.js" type="text/javascript" ></script> 

    <script src="/Tiv2/static/js/application.js" type="text/javascript" ></script> 

     </body> 
    </html> 

這會導致頁面中的不良行爲。點擊鏈接時,我可以看到瀏覽器中的地址欄發生了變化,但頁面不刷新,並停留在單擊鏈接的當前頁面上。 只有手動刷新頁面(F5)後,瀏覽器纔會加載鏈接的頁面。

我試過使用普通標籤,一切正常。 如何防止Grails將js文件合併爲一個?

感謝

回答

2

你想使用聲明你的資源,以便捆綁映射器不運行時,排除的說法。

jquerymobile{ 
    resource url:'css/jquery.mobile-1.3.2.css', exclude: 'bundle' 
    resource url:'js/jquery.mobile/jquery.js', exclude: 'bundle' 
    resource url:'js/jquery.mobile/jquery.mobile-1.3.2.js', exclude: 'bundle' 
} 

documentation涵蓋了這一點,是相當不錯的。你應該總是從那裏開始。

2

另一種選擇是

jquerymobile{ 
    defaultBundle false 
    resource url:'css/jquery.mobile-1.3.2.css' 
    resource url:'js/jquery.mobile/jquery.js' 
    resource url:'js/jquery.mobile/jquery.mobile-1.3.2.js' 
} 

這將禁用此模塊中捆綁的所有資源