2016-10-20 7 views
0

Ниже приведена часть моего кода. фоновые изображения не загружаются. Я пробовал такие вещи, как «<% = asset_path (« images/bg1.jpg »)%> 'и« images/bg1.jpg »и т. д. Я новый в рельсах, кто-нибудь может указать мне в правильном направлении?Rails 4.2: ошибка пути изображения в JS

$(".login-bg").backstretch(["bg1.jpg","bg2.jpg","bg3.jpg"],{fade:1e3,duration:8e3}) 

ответ

0

С демо:

$.backstretch([ 
     "http://dl.dropbox.com/u/515046/www/outside.jpg" 
    , "http://dl.dropbox.com/u/515046/www/garfield-interior.jpg" 
    , "http://dl.dropbox.com/u/515046/www/cheers.jpg" 
], {duration: 3000, fade: 750}); 

Видимо, ваш код не будет работать, потому что все, что вы делаете, это проходит в строках. Вместо этого вы должны пройти по маршрутам, которые служат вашим изображениям.

Предполагая, что у вас есть это в файле javascript, вы не сможете использовать свой помощник по рельсам. Что вы должны сделать в этом случае:

  • Построить контроллер, который обслуживает эти изображения: ImagesController
  • Просто загрузите фотографии на интернет-облака и положить ссылки внутри массива

В качестве альтернативы, то, что вы должны сделать, это написать script внутри представления (html.erb), и вы должны иметь доступ к помощнику рельсов таким образом. Затем вы сможете интерполировать ссылки как строку.

т.е. "[#{image_path('bg1.jpg')}", "#{image_path('bg2.jpg')}"]

+0

У меня есть эти изображения в /assets/images/bg1.jpg, и я хочу получить к ним доступ оттуда не в сети. – Talha

+0

Тогда вы либо хотите, чтобы контроллер обслуживал ваши собственные изображения, или вам нужен массив маршрутов, чтобы включить абсолютные пути ' "my_app.com/assets/bg2.jpg"' – Jeff

0

код, который вы Предоставленный Javascript, который будет выполнен из браузера пользователя на компьютере пользователя. Таким образом, он не будет иметь прямого доступа к файлам в каталоге images на сервере приложений.

Если имя файла JavaScript something.js.erb можно встраивать на Ruby код в нем для расширения по трубопроводу активов, что-то вроде:

$(".login-bg") 
    .backstretch(
    ["<%= image_url('bg1.jpg') %>", 
    "<%= image_url('bg2.jpg') %>", 
    "<%= image_url('bg3.jpg') %>" 
    ], 
    { fade: 1e3, duration: 8e3 } 
) 

Рельсы asset pipeline guide является отличным источником информации о том, как использовать эти функции ,

Смежные вопросы