我对heroku上的某些资产有问题。 (当地环境工作正常) 资产正在筹备中。如果我在heroku rails console中执行:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If Target.Columns.Count > 1 Then Exit Sub
If IsEmpty(Target) Then
Application.EnableEvents = False
ActiveSheet.Range("X" & Target.Row & ":X" & Target.Row + Target.Rows.Count - 1).ClearContents
Application.EnableEvents = True
End If
End Sub
我收到以下回复:
helper.asset_path("typicons.woff")
helper.asset_path("backgrounds/1.jpg")
所以我假设资产在heroku资产管道中。通过直接打开带有摘要的URL,我收到了该文件。
但是如果我尝试用css或javascript引用这些文件:
/assets/typicons-c2430aad2b6a33948dc064cfaee8ad65ff9e3ca439834f3aaa84abec3d10dea8.woff
/assets/backgrounds/1-c2098ff7e7fbb89b2d18e9cd9089f712f2b837265d1d2e4182c36c23392760c6.jpg
文件未加载。同样打开/assets/backgrounds/1.jpg直接不起作用。引用.rb或.erb文件中的资源。
有人可以告诉我,我必须更改哪种配置,所以资产的网址也可以在没有摘要的情况下工作?
谢谢!
答案 0 :(得分:0)
问题是Rails 4根本不支持非消化资产。(无论出于何种原因) 以下是对该问题的更全面的解释:Non Digested Asset Names in Rails 4 我的个人解决方法是将一个公共资产文件夹添加到我的应用程序:
public/assets/static/
并上传其中所需的资产。由于它只是关于字体和背景图像,它们不经常改变,所以它似乎不是一个问题。在上面的链接中,提出了其他几种解决方案。
答案 1 :(得分:0)
假设您使用的是相当标准的资产管道设置,Rails指南中的这段内容应该有所帮助:
如果您将一个erb扩展名添加到JavaScript资源,使其成为application.js.erb之类的东西,那么您可以在JavaScript代码中使用asset_path帮助程序:
- http://guides.rubyonrails.org/asset_pipeline.html(第2.3.3节)
在您的示例中,将erb
扩展名添加到JS文件中,然后将行更改为
$('.top-content').backstretch(<%= asset_path("backgrounds/1.jpg") %>);