繁体   English   中英

Grails在https中引用js

[英]Grails referring js in https

我开发了一个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重定向?

只是用

<g:javascript src="myjslib.js" />. 

Js文件应该在web-app / js文件夹下

文档在这里: http//grails.org/doc/latest/ref/Tags/javascript.html

干杯

我也有这个问题。 我们在遗留应用程序中包含JS和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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM