2017-06-09 144 views
1

我需要縮小所有js文件(使用Adobe Experience Manager)文件夾'js',它也由'angular.min.js'組成。在控制檯中縮小錯誤「拒絕執行,因爲它的MIME類型('text/html')不可執行,並且啓用了嚴格的MIME類型檢查」

雖然試圖做到這一點,它拋出Chrome的誤差

拒絕執行腳本「angular.min.js」,因爲它的MIME類型(文本/ html')不是可執行文件,嚴格的MIME類型檢查已啓用。

我該如何解決這個問題?

回答

3

我建議你從你自己的客戶端庫中分離第三方庫,如Angular。因爲您通常不希望縮小這些第三方庫,但您確實想要縮小自己的客戶端庫。

例子:

etc/ 
├── clientlibs/ 
| └── myproject/ 
|  └── vendor/ 
|   └── angular/ 
|    ├── angular.min.js 
|    ├── .content.xml 
|    └── js.txt 
└── designs/ 
    └── myproject/ 
     └── myclientlib/ 
      ├── js/ 
      | └── myclientlib.js 
      ├── .content.xml 
      └── js.txt 

然後,你可以使用以下clientlib定義:

/etc/clientlibs/myproject/vendor/angular/.content.xml

<?xml version="1.0" encoding="UTF-8"?> 
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
     jcr:primaryType="cq:ClientLibraryFolder" 
     categories="[myproject.angular]" 
     jsProcessor="[default:none]"/> 

jsProcessor="[default:none]"禁用縮小。

/etc/designs/myproject/myclientlib/.content.xml

<?xml version="1.0" encoding="UTF-8"?> 
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" 
     jcr:primaryType="cq:ClientLibraryFolder" 
     categories="[myproject.myclientlib]" 
     jsProcessor="[min:gcc]"/> 

jsProcessor="[min:gcc]"由谷歌關閉編譯器能夠縮小。

您可以輕鬆地使用這兩個clientlibs在你的HTL(原悅目)模板:

<sly data-sly-use.clientlib="/libs/granite/sightly/templates/clientlib.html"> 
    <sly data-sly-call="${clientlib.js @ categories='myproject.angular'}"/> 
    <sly data-sly-call="${clientlib.js @ categories='myproject.myclientlib'}"/> 
</sly> 

注意:您可以選擇clientlib類別名稱myproject.angularmyproject.myclientlib自如。在我的示例中,您不必使用這些名稱。但我會建議使用某種名稱空間,如myproject

+0

非常感謝!它的工作..但ngStorage也是罪魁禍首....我複製ngStorage.js而不是ngStorage.min.js。 – Sunny

相關問題