/ / створення посилання на папку активів на рейках - jquery, ruby-on-rail, asset-pipeline

створення посилання на папку активів на рейках - jquery, ruby-on-rail, asset-pipeline

Цікаво, як я можу подолати цю проблему. На головній сторінці мого додатку Rails у мене є повзунок зображення:

  <div id = "carousel">
<img id ="rotate_images" src="/images/assets/1.1.png"/>

<div id = "back">
<img src = "assets/arrow_back.png">
</div>

<div id = "forward">
<img src = "assets/arrow_forward.png"></div>
</div>

Зображення відображаються правильно. Потім, на іншій сторінці тієї ж програми, коли я вставляю той самий код, зображення не з'являються. У Консолі я отримую:

GET http://localhost:3000/users/assets/1.1.png 404 (Not Found)

Оскільки я переконаний, що ви знаєте, папка активів не в "Користувачах", вона знаходиться в папці "Програма". Я думав, що створення таких посилань як src = "../ assets / .. і тд" буде робити це, але не так пощастило. Я використовую код Rails, як-от:

 <%= image_tag("arrow_forward.png") %>

але це просто викликає головний біль, як я використовуюjQuery код, який відповідає моїм атрибутам img src. Якщо це будь-яке використання, тут є код jQuery. Якщо це може бути змінено для підключення до Rails image_tag, це було б чудово, але мені дуже цікаво, чому пакунки активів не знайдено правильно. Дякую за будь-яку допомогу.

  <script>

$("#back").on({
"click": function () {
var origsrc = $(rotate_images).attr("src");
var src = "";
if (origsrc == "assets/3.1.png") src = "assets/2.1.png";
if (origsrc == "assets/2.1.png") src = "assets/1.1.png";
if (origsrc == "assets/1.1.png") src = "assets/1.1.png";
$(rotate_images).attr("src", src);
}
});

$("#forward").on({
"click": function () {
var origsrc = $(rotate_images).attr("src");
var src = "";
if (origsrc == "assets/1.1.png") src = "assets/2.1.png";
if (origsrc == "assets/2.1.png") src = "assets/3.1.png";
if (origsrc == "assets/3.1.png") src = "assets/3.1.png";
$(rotate_images).attr("src", src);
}
});
</script>

Відповіді:

1 для відповіді № 1

у вас є кілька варіантів тут ...

Я припускаю, що ви біжите рейки 3. Я думаю, що коли ви працюєте на виробничому об'єкті, ви отримаєте засвоєні та нерозподілені активи (image-HASHDIGEST.png). тому треба безпечно використовувати в коді перегляду коду та керуючі коди в вашому JavaScript.

оскільки ви маєте на увазі код в <script> мітки, я припускаю, що це якийсь код, який також походить від ваших поглядів, тому ви також повинні мати можливість використовувати сигнал erb там же.

коли ви використовуєте контейнер-об'єкт, ви також можете попередньо обробляти ваш javascript тобто з erb. це, як правило, здійснюється шляхом додавання .erb до файлів (some.js.erb), а потім використовуйте допоміжний інструмент. це, мабуть, найчистіше рішення.

незважаючи на цей факт, я думаю, що трубопровід об'єктів вплинув на великі часи, оскільки він створює абсолютно новий рівень складності для рейок, який є переважним, а також переобладнаний для більшості додатків.