2017-06-09 145 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

相关问题