本地一切正常,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:precompile
config/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...)