虽然在heroku资产管道中,但Rails 4 Heroku资产没有加载

时间:2016-06-02 15:52:30

标签: ruby-on-rails ruby-on-rails-4 heroku asset-pipeline

我对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文件中的资源。

有人可以告诉我,我必须更改哪种配置,所以资产的网址也可以在没有摘要的情况下工作?

谢谢!

2 个答案:

答案 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") %>);
相关问题