添加 django MarkdownX 图像的完整路径?
Adding full path to django MarkdownX images?
我在我的 Django 模型中添加了一个 MarkdownxField,它运行良好。我可以在管理面板中通过适当的预览对其进行编辑。
但是,当我将图片添加到 markdown 时出现问题。我的应用程序是用 React 构建的,并从域上的不同端口提供服务。当 MarkdownX 将图像添加到 markdown 文件时,它使用相对路径进行操作,因此调用转到客户端端口而不是自动保存图像的服务器端口。
我查看了 MarkdownX 的设置选项,但找不到有用的东西。图像上传并保存好。但是客户端无法获取。
可能的解决方案(也可能是困难的解决方案)是,提供图像的绝对路径
例如:
![MyImage](<b>https://my.domain.com</b>/mediafiles/markdownx/e4692afa-9608-4fac-bd85-c28209879d0b.png)
所以这不是我在问题中想要的,但我在解析 markdownx 内容时通过注入完整路径在客户端解决了这个问题。
以防万一有人卡在上面我就是这样做的:
// This util function acts as a middleware when i collect the data.
import { serverPath } from "../serverPaths";
const markdownImageInjector = (data: string): string => {
let injected = data.replace(
/!\[\]\(\/media\/markdownx\//g,
`![](${serverPath}media/markdownx/`
);
return injected;
};
export default markdownImageInjector;
这是动作:
const getArticle = (id: string) =>
axios
.get(`${apiPath}/articles/${id}`)
.then(res => {
let data = res.data;
data.content = markdownImageInjector(data.content);
return data;
})
我在我的 Django 模型中添加了一个 MarkdownxField,它运行良好。我可以在管理面板中通过适当的预览对其进行编辑。
但是,当我将图片添加到 markdown 时出现问题。我的应用程序是用 React 构建的,并从域上的不同端口提供服务。当 MarkdownX 将图像添加到 markdown 文件时,它使用相对路径进行操作,因此调用转到客户端端口而不是自动保存图像的服务器端口。
我查看了 MarkdownX 的设置选项,但找不到有用的东西。图像上传并保存好。但是客户端无法获取。
可能的解决方案(也可能是困难的解决方案)是,提供图像的绝对路径
例如:
![MyImage](<b>https://my.domain.com</b>/mediafiles/markdownx/e4692afa-9608-4fac-bd85-c28209879d0b.png)
所以这不是我在问题中想要的,但我在解析 markdownx 内容时通过注入完整路径在客户端解决了这个问题。
以防万一有人卡在上面我就是这样做的:
// This util function acts as a middleware when i collect the data.
import { serverPath } from "../serverPaths";
const markdownImageInjector = (data: string): string => {
let injected = data.replace(
/!\[\]\(\/media\/markdownx\//g,
`![](${serverPath}media/markdownx/`
);
return injected;
};
export default markdownImageInjector;
这是动作:
const getArticle = (id: string) =>
axios
.get(`${apiPath}/articles/${id}`)
.then(res => {
let data = res.data;
data.content = markdownImageInjector(data.content);
return data;
})