В трясогузке, как мне настроить API v2 для присоединения полного базового URL (например, http://localhost: 8000 ") к изображениям steamfield и встраивания richtext? - PullRequest
1 голос
/ 08 апреля 2020

В настоящее время я использую nuxt. js в качестве интерфейса для моей безголовой cms трясогузки. Когда я загружаю поле richtext или блок изображения в поле потока, я не могу или не знаю, как прикрепить полный базовый URL-адрес сервера трясогузки, чтобы при рендеринге на сайте nuxt js он преобразовывался в src="/media/images/image.png, который в конце пытается найти изображение на nuxt js сайте http://localhost:3000, и ему нужно найти его на стороне сервера трясогузки http://localhost:8000. Для стандартных изображений я могу перехватить и добавить базовый URL-адрес сервера, но не когда речь идет о чем-либо внутри поля потока.

1 Ответ

1 голос
/ 09 апреля 2020

[РЕДАКТИРОВАТЬ: лучший ответ ниже] Я не уверен на 100%, что это «правильный» способ сделать это, но мне удалось получить то, что мне нужно, добавив серверное промежуточное ПО, которое обнаруживает все, что начинается с каталога /media и добавляет базовый URL-адрес сервера.

// in nuxt.config.js
export default {
    serverMiddleware:[
      '~/serverMiddleware/redirects'
    ],
}

, затем в `serverMiddleware / redirects. js

export default function(req, res, next) {
    if (req.url.startsWith('/media')) {
        res.writeHead(301, {Location: `http://localhost:8000${req.url}`})
        res.end()
    } else {
        next()
    }
}

Пока это быстрый обходной путь, я посмотрю, если там что-нибудь лучше.

Хорошо, я считаю, что это правильное решение. Мне казалось, что это ускользает от меня: P

Вместо использования перенаправления просто добавьте прокси к nuxt.config.js

modules: [
    '@nuxtjs/axios',
],
axios: {proxy: true},
proxy: {
    '/api/v2/': 'http://localhost:8000',
    '/media/': 'http://localhost:8000'
}
...