Heroku上的rails应用程序没有上传的资产精灵

时间:2013-07-08 07:03:33

标签: ruby-on-rails heroku

我刚刚在Heroku上推送了我的第一个应用程序,看来我的精灵图片还没有上传到服务器。你有什么可能发生的线索吗?

例如: 我的文件是 app / assets / images / app_photo.png

我的CSS文件使用:background: url("app_photo.png");

定义我的精灵

在我的应用中,我找到了指向我的精灵的链接,但是当我点击它时, herokuapp.com/assets/app_photo.png 路径呈现“您正在寻找的页面没有”存在“。

以下是我推送到heroku的日志:

-----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
       Detected manifest file, assuming assets were compiled locally
-----> Discovering process types
       Procfile declares types      -> (none)
       Default types for Ruby/Rails -> console, rake, web, worker

-----> Compiled slug size: 37.9MB
-----> Launching... done, v17

当我用background: url("app_photo.png");替换background: image-url("app_photo.png");时,这是预编译的css:

.app_photo{background:url(/assets/app_photo-f095c78ecb698e651f262b36a593dc8e.png);height:64px;width:64px;text-indent:-9999px}

1 个答案:

答案 0 :(得分:2)

使用Rails资产管道时,使用以下内容在 SCSS 文件中引用您的资产:

image-url("your_image.png")

有关详细信息,请参阅Rails Asset Pipeline documentation

使用Heroku你有3个选择:

  1. 在本地编译资产。
  2. 在slug编译期间编译资产。
  3. 在运行时编译资产。
  4. 有关详细信息,请参阅heroku's documentation

    config/production.rb文件中:

    config.serve_static_assets = true
    

    Heroku Cedar架构无法提供静态资产。