Inline_svg гем не работает. SVG файл не найден

Я использую rails 5.0.1 и использую последнюю версию гема inline_svg: Inline SVG

Проблема в том, что даже если я поставлю свой SVG с правильным путем, как это:

<%= inline_svg "/assets/svg/add.svg", class: 'some-class' %>

И изображение находится в "app/assets/svg/add.svg".

Я получаю эту ошибку в браузере:

<!-- SVG file not found: '/assets/svg/add.svg' -->

Я думаю, что он мог, потому что svg не правильно загружен рельсами, но я не видел никакой информации об этом в Google.

2 ответа

Решение

<%= inline_svg 'add.svg' %>

Ваш SVG можно найти на localhost:3000/assets/add.svg

Вы сказали, что уже проверили путь, но если вам нужны дополнительные пробные версии, запустите rails c затем Rails.application.config.assets.paths

Ваш путь должен быть в выводе

Актив не предварительно скомпилирован

Если вы не можете отобразить актив в localhost:3000/assets/add.svgэто означает, что он не был предварительно скомпилирован. Эта процедура берет файлы из некоторых папок (например, app/assets/javascript а также stylesheetsи т. д.) и папки, которые вы включили в application.rb или же assets.rb файл с

config.assets.paths << Rails.root.join("app","assets", "svg")

и создает для каждого необходимого файла отпечатанную версию. Отпечаток пальца - это буквенно-цифровой код, который отличает каждую версию вашего application.js, scss а твои фотки другие файлы читайте на о дактилоскопии

Также вы можете предварительно скомпилировать разработку или производство, но у вас есть 2 разные команды, поэтому вопрос в том, где вы столкнулись с этой проблемой?

Если вы прекомпилируете в разработке, вы можете тогда git add <name-of-new-files-precompiled> затем git status проверить, что новый файл / svg был добавлен в ваш git перед запуском git commit -m 'adding an svg file to git' затем беги git push heroku master или же git push -u origin master

Другие сценарии

Я жду ваших отзывов, первое, что мне нужно знать, это если вы можете отобразить этот актив в производстве / разработке

Также какую версию gem вы используете, потому что только версия 0.10 поддерживает rails 5. Возможно, rails 5.0.1 не поддерживается.

Также прочитайте эту проблему о поддержке абсолютных путей к файлам.

Это будет работать, если вы просто сохраните SVG вapp/assets/images/svgи позвони<%= image_tag 'svg/add.svg' %>

Другие вопросы по тегам