gpt4 book ai didi

ruby-on-rails - 对第三方 js 库的 rails 4 asset pipeline 感到困惑

转载 作者:行者123 更新时间:2023-12-04 05:57:15 26 4
gpt4 key购买 nike

我有两个问题,但我猜它们都会导致相同的答案。

它们都与静态图像有关,显示在开发模式而不是生产模式 (heroku) 中。

案例一:

在我的 model.rb 中

has_attached_file :avatar, styles: {
thumb: '32x32#',
medium: '512x512#'
},
:default_url => ActionController::Base.helpers.asset_path('/assets/avatar_:style.png') ## <- This line (#1)

案例二:

在我的 view.html.haml 中,我有内联 javascript

:javascript
$('.star').raty({
path: '/assets', ### <- This line (#2)
readOnly: true,
noRatedMsg : "I haven't been rated yet!",
score: function() {
return $(this).attr('data-score');
}
});

案例 1 中,如果用户没有上传个人资料图片(使用回形针),我将尝试实现一个默认图片,其中包含两个图片 avatar_thumb.pngavatar_medium.png 位于 /app/assets/images

案例 2 中,我尝试使用第三方库实现 5 星评级功能 raty ,这需要“star”图像。我也在 /app/assets/images 中放置了这个库附带的三个图像。

问题:在这两种情况下,图像都是在开发模式下看到的,但当我部署到 Heroku 时却看不到。我该如何解决这个问题。

P.S.:我对 Rails 完全陌生,如有任何帮助,我们将不胜感激。

最佳答案

Assets 管道在这里并没有让你的生活变得轻松 - Paperclip 假设 default_url 是可以用所需值替换 :style 部分的东西,但这可以' 起作用,因为这显然也会改变文件名的指纹部分。

这里最简单的做法是不对这些图像使用 Assets 管道。您实际上不必为任何事情使用 Assets 管道,与 javascript 或 css 文件相比,图像的好处非常小。

为此,将图像移动到 public/images 中。然后,对于第一种情况,将默认 url 更改为

/images/avatar_:style.png

对于第二种情况,将路径设置为 /images

如果你愿意,你可以让第二种情况与 Assets 管道一起工作——比如

:javascript
$('.star').raty({
readOnly: true,
starHalf: '#{asset_path('star-half.png')}',
starOff: '#{asset_path('star-off.png')}',
starOn: '#{asset_path('star-on.png')}',
cancelOn: '#{asset_path('cancel-on.png')}',
cancelOff: '#{asset_path('cancel-off.png')}',
noRatedMsg : "I haven't been rated yet!",
score: function() {
return $(this).attr('data-score');
}
});

关于ruby-on-rails - 对第三方 js 库的 rails 4 asset pipeline 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24375009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com