在开发过程中,我使用Webpack在Rails 6中编写以下代码时没有问题(在运行
请注意,我正在使用Webpack加载静态资源,因此不用sprockets(虽然我没有删除它的gems或触及与资产管道相关的任何配置;只是暂时忽略它)。 这意味着我将所有图像存储在
在生产环境中,我的推送被Heroku拒绝了,因为引用的.png文件(star-on.png和star-off.png)找不到了,我想是因为Webpack将它们编译到/public目录中,所以在/media/images路径中不再存在。不幸的是,Heroku的指南没有涵盖Rails 6/Webpack,我找到的所有答案都是针对Sprockets而非Webpack的。
如有建议,不胜感激!
bundle exec rails webpacker:install:erb
后):# app/javascript/raty.js.erb
<% helpers = ActionController::Base.helpers %>
$(document).on("turbolinks:load", () => {
$('.star-rating').raty({
starOn: "<%= helpers.asset_pack_path('media/images/star-on.png') %>",
starOff: "<%= helpers.asset_pack_path('media/images/star-off.png') %>",
readOnly: true,
score: function () {
return $(this).attr('data-score');
}
});
});
请注意,我正在使用Webpack加载静态资源,因此不用sprockets(虽然我没有删除它的gems或触及与资产管道相关的任何配置;只是暂时忽略它)。 这意味着我将所有图像存储在
app/javascript/images
中,然后按照文档要求进行引用:# app/javascript/packs/application.js
// Uncomment to copy all static images under ../images to the output folder and reference
// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)
// or the `imagePath` JavaScript helper below.
//
const images = require.context('../images', true)
const imagePath = (name) => images(name, true)
在生产环境中,我的推送被Heroku拒绝了,因为引用的.png文件(star-on.png和star-off.png)找不到了,我想是因为Webpack将它们编译到/public目录中,所以在/media/images路径中不再存在。不幸的是,Heroku的指南没有涵盖Rails 6/Webpack,我找到的所有答案都是针对Sprockets而非Webpack的。
如有建议,不胜感激!