реагировать — создавать-реагировать-приложение и динамически загружать изображение через файл php

Я перевожу проект response / php (он был запущен на apache) для создания-реагирования-приложения и, таким образом, Express.js / прямой загрузки и т. Д. (Для разработки).

В этом проекте есть изображения, загруженные от пользователей, и они сохраняются вне корня документа через php-файл, который принимает в качестве строки запроса имя файла для загрузки.

file.php?image=file_name.png

и его компонент относительной реакции является

const Img = (props) => {

const findFile = () => {
// base64
if(props.file && props.file.startsWith('data:image/')){
return props.file;
}

return "file.php?name=" + props.file + "&type=" + props.type;
};

return (
<img src={findFile()} alt={props.alt || props.file}/>
);

};

После миграции в create-реагировать на приложение я добавил прокси в package.json

"proxy":"http://localhost"

но при этом изображения загружаются только тогда, когда пользователь находится на странице панели инструментов. На других страницах изображения не работают, потому что меняют путь к файлу file.php.

В панели инструментов (http: / localhost / auth)

127.0.0.1 - - [10/Oct/2017:23:59:12 +0200] "GET /file.php?name=avatar4.png&type=avatarDefaultDir HTTP/1.1" 200 12295

На другой странице (например: HTTP: // локальный / авториз / Профиль)

127.0.0.1 - - [10/Oct/2017:23:59:17 +0200] "GET /auth/file.php?name=avatar4.png&type=avatarDefaultDir HTTP/1.1" 200 27

Как я мог решить эту проблему?

0

Решение

Вам нужно использовать правильный путь к файлу file.php и использовать абсолютный путь к файлу file.php

вместо

return "file.php?name=" + props.file + "&type=" + props.type;

использование

return "/file.php?name=" + props.file + "&type=" + props.type;

это предполагает, что file.php находится в корне вашего проекта

0

Другие решения

Других решений пока нет …