————-————————富文本
或者使用markdown也行
@彼时今日: 感谢回答,我没这方面的知识。我去搜搜看
图片和文字分开存,没问题啊,相当于 文本和图片文件单独存储, 图片实际上在文本中是个url,你只需要把图片上传到服务器 ,然后获取到这个地址,赋值在内容中就可以了。
试试看先~
那怎么渲染呢,怎么知道这段文字下面有几张图片呢?这个图片是不是在这段文字的下边呢?我没搞懂这个
@Recoveryccx: 可能你没理解我的意思, 图片先上传 得到url1、url2、url2放在你的文案中。
基础太弱了, 可能我这么说你不太能明白,你再看看吧
@一周一志: 感觉你没明白我的意思。就是如果我是个通用模板我怎么渲染呢,每篇文章的图片跟文字位置都不一样。假设有一篇文章是【文字】【图片】【文字2】【图片2】【图片3】【文字3】,另一篇文章是【文字】【图片】【图片】【文字】【图片】,那通用模板要怎么写呢?然后你说的数据库分开存,也打乱了原本的文章结构,要怎么还原呢
这哥们比较靠谱,也是很多公司技术路线
最经典的就是"*.rtf",也就是所谓的富文本,微软干这行最经典了。
高阶的就是openxml相关的,也就是office文档。也可以转pdf电子书啥的。这类东西其实就是xml相关的节点存储,后来发展成了更为强大的xaml。
当前当前流行的流文档也挺好,markdown,html这类的转换也挺好。
你看看博客园这个回复里面怎么混放图片和文字,这不是一个很好的例子吗。图片就是url,后面再渲染。
一般都用富文本编辑器的吧,上传的图片直接就是URL地址存进去的,显示的时候根据URL地址显示图片啊。。。
个人有另个想法,也能够把图片转成字节流的方式存进数据库。
对于图文混排的文章,我们需要考虑以下几个方面:
后端(Node.js+Express):
// 获取文章内容
app.get('/articles/:id', async (req, res) => {
const { id } = req.params;
const [rows] = await pool.query('SELECT * FROM content_blocks WHERE article_id = ?', [id]);
res.json(rows);
});
前端(React):
import React from 'react';
function Article({ content }) {
return (
<div>
{content.map((block) => {
switch (block.type) {
case 'text':
return <p key={block.id}>{block.content}</p>;
case 'image':
return <img key={block.id} src={block.content} alt="" />;
// ...其他类型
}
})}
</div>
);
}
通过合理设计数据库结构和前端组件,可以实现图文混排文章的灵活存储和高效渲染。需要注意的是,具体的实现方式会根据项目的需求和技术栈有所不同。
其他可考虑的因素:
希望这个回答能够帮助您更好地解决问题。如果您还有其他问题,欢迎随时提出!
您想深入了解哪个方面的内容呢? 比如: