我开发了一个Javascript库,可以在我的其他一些网站中使用。这是一个grails应用程序。 grails应用程序可以通过HTTPS访问。但是,在HTTPS中引用JS文件时会出现问题。
包括JS库时:
https://foo.my.domain/appcontext/static/js/myjslib.js
Grails将此请求重定向到:
http://foo.my.domain/appcontext/static/bundle-bundle_application_defer.js
请注意HTTPS - > HTTP导致“不安全”警告,并且js lib被阻止在例如chrome和IE。
如果我参考
https://foo.my.domain/appcontext/static/bundle-bundle_application_defer.js
直接,它运作正常!
如何强制grails不要使用此https - > http重定向,引用静态内容?
答案 0 :(得分:0)
只需使用
<g:javascript src="myjslib.js" />.
Js文件应该在web-app / js文件夹下
文档在这里:http://grails.org/doc/latest/ref/Tags/javascript.html
干杯
答案 1 :(得分:0)
我也有这个问题。我们包括JS&amp;来自遗留应用程序的CSS导致Chrome出现问题。
在我们的例子中,我们有一个正在进行ssl加密的nginx代理,因此配置Spring / Acegi不是一个选择。下面的卷曲会话(编辑以摆脱我们的服务器名称/地址)显示从https到http的重定向。
$ curl -v https://FOO.com/ess/js/framework/Widgets/Suggest.DropDown.js
* About to connect() to FOO.com port 443 (#0)
...
GET /ess/js/framework/Widgets/Suggest.DropDown.js HTTP/1.1
...
HTTP/1.1 302 Found
Server: nginx/1.4.1
Date: Fri, 31 May 2013 19:24:40 GMT
Content-Length: 0
Connection: keep-alive
Location: http://FOO.com/ess/static/js/framework/Widgets/Suggest.DropDown.js
我提出的解决方案是使用Config.groovy中的排除模式从资源插件中排除遗留资源,如下所示:
grails.resources.adhoc.patterns = ['/images/*', '/css/*', '/js/*', '/plugins/*']
grails.resources.adhoc.excludes = [ '/css/framework/**', '/js/framework/**' ]
此处有更多文档:http://grails-plugins.github.io/grails-resources/guide/9.%20Configuration.html