URL-адрес изображений в коде JavaScript с использованием конвейера Rails 3.1? В файлах CSS вы можете получить собственное имя ресурса изображения (с помощью отпечатка пальца), используя: background-image: url(image-url("rails.png")) но как вы делаете то же самое из файла JavaScript? Ответ 1 Я вижу, что вы используете метод sass helper. В стандартном (не Sass) CSS вы делаете что-то вроде этого: .class { background-image: url(<%= asset_path 'image.png' %>) } В файле CSS должен быть добавлен erb для расширений: file_name.css.erb Для javascript применяются те же правила: file_name.js.erb и в файле: var image_path = '<%= asset_path 'image.png' %>' The Rails руководство по конвейеру активов - отличный источник информации о том, как использовать эти функции. Ответ 2 В Rails 4 вместо использования представления js.erb я рекомендую вам придерживаться конвейера ресурсов и передавать URL-адрес ему с помощью переменной вместо использования gon или другого метода, обсуждаемого в: Ruby on Rails - Отправить переменную JavaScript от контроллера к внешнему файлу активов Javascript С gon: приложение/просмотров/макеты/application.html.erb: <head> <meta charset="utf-8"/> <%= include_gon %> приложение/контроллеры/application_controller.rb: before_filter { gon.path = asset_path 'image.png' } Приложение/активы/JavaScripts/file.js.coffee: alert gon.path Этот метод выполняется быстрее, потому что файл предварительно скомпилирован только один раз при запуске, обслуживается сервером вместо Rails и по тому же HTTP-запросу, что и остальные Js.
Ответ 1 Я вижу, что вы используете метод sass helper. В стандартном (не Sass) CSS вы делаете что-то вроде этого: .class { background-image: url(<%= asset_path 'image.png' %>) } В файле CSS должен быть добавлен erb для расширений: file_name.css.erb Для javascript применяются те же правила: file_name.js.erb и в файле: var image_path = '<%= asset_path 'image.png' %>' The Rails руководство по конвейеру активов - отличный источник информации о том, как использовать эти функции.
Ответ 2 В Rails 4 вместо использования представления js.erb я рекомендую вам придерживаться конвейера ресурсов и передавать URL-адрес ему с помощью переменной вместо использования gon или другого метода, обсуждаемого в: Ruby on Rails - Отправить переменную JavaScript от контроллера к внешнему файлу активов Javascript С gon: приложение/просмотров/макеты/application.html.erb: <head> <meta charset="utf-8"/> <%= include_gon %> приложение/контроллеры/application_controller.rb: before_filter { gon.path = asset_path 'image.png' } Приложение/активы/JavaScripts/file.js.coffee: alert gon.path Этот метод выполняется быстрее, потому что файл предварительно скомпилирован только один раз при запуске, обслуживается сервером вместо Rails и по тому же HTTP-запросу, что и остальные Js.