Добавить полный путь к django MarkdownX изображениям? - PullRequest
1 голос
/ 21 января 2020

Я добавил MarkdownxField к моей django модели, и она работает хорошо. Я могу отредактировать его с правильным предварительным просмотром из панели администратора.

Однако, когда я добавил изображения к уценке, возникла проблема. Мое приложение построено в React и обслуживается с другого порта в домене. Когда MarkdownX добавляет изображение в файл уценки, оно делает это с относительным путем, поэтому вызов переходит на порт клиента, а не на порт сервера, где он автоматически сохраняет изображение.

Я просмотрел настройки варианты для MarkdownX, но не смог найти то, что помогло бы. Изображение загружено в сохраненную лунку. Но клиентская сторона не может добраться до него.

Ответы [ 2 ]

1 голос
/ 24 января 2020

Так что это не совсем то, о чем я говорил в этом вопросе, но я решил это на стороне клиента, введя полный путь при анализе содержимого 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;
    })
1 голос
/ 21 января 2020

Возможное решение (возможно, и сложное) состоит в том, чтобы предоставить абсолютный путь к изображению

Пример:

![MyImage](<b>https://my.domain.com</b>/mediafiles/markdownx/e4692afa-9608-4fac-bd85-c28209879d0b.png)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...