Grails ссылается на js в https

89
11

Я разработал Javascript-библиотеку, которая может быть использована на некоторых моих других сайтах. Это приложение grails. Приложение Grails может быть доступно в HTTPS. Тем не менее, существует проблема при ссылке на JS файл в HTTPS.


При включении библиотеки 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 блокируется, например. хром и IE.


Если я ссылаюсь на


https://foo.my.domain/appcontext/static/bundle-bundle_application_defer.js

он отлично работает!


Как я могу заставить grails НЕ сделать этот https → http перенаправление при ссылке на статический контент?

спросил(а) 2021-01-25T19:49:38+03:00 4 месяца, 2 недели назад
1
Решение
100

У меня тоже была эта проблема. Мы включаем JS и CSS из устаревшего приложения, которое вызывало проблемы в Chrome.


В нашем случае у нас есть прокси-сервер nginx, который выполняет шифрование ssl, поэтому настройка 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

ответил(а) 2021-01-25T19:49:38+03:00 4 месяца, 2 недели назад
46

Просто используйте


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

Js файл должен находиться в папке web-app/js

Документация находится здесь: http://grails.org/doc/latest/ref/Tags/javascript.html


Приветствия

ответил(а) 2021-01-25T19:49:38+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема