添加 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;
    })