本地一切正常,heroku 上图片不显示
app/public/images 里
app/public 当中的图片删除掉app/assets/images 里的不会被删除app/assets/images 里
production 环境时,是不能直接处理静态资源的。precompile 将静态资源打成一个经过压缩的文件,如下图,文件名为 application-xxx.css 或 application-xxx.js
xxx 为时间戳,用于区分由不同时间 precompile 的文件
app/assets/images 里修改 config/environments/production.rb
config.assets.compile = true
终端里执行:
rake assets:precompile
git add .
git commit -m "message"
将修改推送到 heroku
git push heroku 最新分支:master
先将图片存入图床,而后直接使用图片的链接,如
http://xxx.jpg
如果在 css 中使用图片链接,
rake assets:precompileconfig/application.rb
config.assets.paths << "#{Rails.root}/app/assets/videos"
app/assets/videos/show.mp4
asset-path("rails.png") => "/assets/rails.png"asset-url("rails.png") => url(/assets/rails.png)为了方便起见,不同的 asset 有对应的 -path 与 -url helper:image, font, video, audio, javascript, stylesheet。
例如:
image-path("rails.png") => "/assets/rails.png"image-url("rails.png") => url(/assets/rails.png)
font-path, video-path, audio-path, javascript-path, stylesheet-path其它有: font-url, video-url, audio-url, javascript-url, stylesheet-url
返回一个对特定目录用 Base64 进行编码的地址引用
asset-data-url("rails.png") => url(data: image/png; base64, iVBORw0K...)