用户登录

在这个内容列表页面上可以显示内容图像。打开 post-list-item 组件,在组件里,从 data 属性里面把 file 解构出来。

下面声明一个 imageUrl ,它的值先是 appConfig.apiBaseUrl,然后是 /files/ 后面加上文件的 id,然后是 /serve ,再用 size 查询符设置一下需要的尺寸,设置成 thumbnail。

修改一下组件视图,在这组 div 里面,用一下 Image 这个组件,它来自 next/image。src 属性的值设置成 imageUrl。把 width 设置成 64,height 也是 64 ,还需要设置一下 alt 属性。可以再把quality 设置成 100。

错误

页面提示 localhost 这个主机名没有在应用的 images 里配置好。这是因为在本地开发环境,后端接口的地址用的是 localhost 这个主机名。

打开 next.config,在 images 里面,添加一个 domains,里面添加一个 localhost,再添加一个 nid-node.ninghao.co,这是生产环境下用的后端应用的主机名。

在终端,重新启动一下应用的开发服务。刷新一下应用页面,现在这个内容列表页面上就会显示内容相关的图像了。

单个内容

打开一个单个内容页面,在这个页面上也可以显示内容图像。打开 posts/[id]/page,在这个页面组件 里,从 post 里把 file 解构出来。

再准备一个图像地址,先是 appConfig.apiBaseUrl,然后是 /files/ 后面加上文件的 id, 然后是 /serve ,再用 size 查询符设置一下需要的尺寸,设置成 large。

修改一下组件视图,在这个标题的上面添加一组 div,直接设置一下它的 style,position 设置成 relative,height 是 60vh。

它里面包装的是一个 Image 组件,src 的值是 imageUrl,alt 的值是 post.title,再添加一个 fill,设置一下 style 属性,把 objectFit 设置成 contain。

在这个组件的包装元素上面,再添加一个 style 属性,把 textAlign 设置成 center。

预览

在浏览器,再预览一下这个内容页面,现在页面上就会显示这个内容相关的图像了。

在内容列表与页面显示内容图像《 Next.js:图像优化 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点