создать ссылку на ресурс из файла .js - PullRequest
3 голосов
/ 27 декабря 2011

Как создать ссылку на ресурс (изображение, файл .css и т. Д.) Из файла .js в приложении Grails без жесткого кодирования контекста приложения?

В файле .gspЯ легко могу сделать это, используя теги r:img или r:resource, предоставляемые плагином ресурсов.Если приложение не использует этот плагин, вместо него можно использовать тег g:resource.Однако ни один из этих плагинов не может быть использован из кода .js.

Мое текущее решение (которое я ненавижу) - поместить код .js в файл .gsp, а затем использовать вышеупомянутые теги изображений, например

<r:script>
  var imagePath = '<r:img file="foo/bar.png"/>';
<r:script>

Обновление

Мой вопрос был о том, как сделать ссылку на ресурс из файла .js, а не из некоторого кода JavaScript в блоке <script> в GSP.В последнем случае я могу использовать тег GSP, например <r:img> или <r:resource> или <g:createLink>, но теги GSP в файлах .js игнорируются.

Ответы [ 2 ]

6 голосов
/ 27 декабря 2011

Вы можете передать текущий контекст в JS. Например, добавив следующий фрагмент в <head> (перед вашим собственным JS):

<g:javascript>
    window.appContext = '${request.contextPath}';
</g:javascript>

и затем используйте его в любом месте вашего JS как:

var imagePath = appContext + '/images/foo/bar.png'
0 голосов
/ 28 декабря 2011

Вы очень близки:

Вместо этого используйте

<r:script>
   var imagePath = '${createLink(dir: 'foo', file: 'bar.png')}';
</r:script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...