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' %>