В основном я сделал (относительно) простое приложение для клиента. Приложение работает и все такое, но они продолжают запрашивать изменения в данных.
Учитывая изначально ожидаемую простоту приложения и тот факт, что в нем хранятся статические данные, я не связывал его с какой-либо серверной частью. Все данные находятся в локальном статическом файле с объектом, содержащим данные.
Проблема в том, что fle входит в состав Buld, поэтому, если я хочу просто изменить некоторые статические данные без необходимости rbuild, я не могу!
У меня есть ресурсы, к которым мой файл данных может получить доступ в общей папке, и они работают нормально. Я пытался реализовать ту же идею с файлом js.
Я не могу импортировать файлы из-за пределов папки / src.
Есть ли способ получить доступ к статическим данным из статической папки, которая каким-то образом добавляется при сборке?
Да, вы можете разместить активы в статической папке.
Документы: использование общей папки
index.html
с помощью %PUBLIC_URL%/path/resource
.process.env.PUBLIC_URL + '/path/resource'
в коде javascript.Оба этих подхода заменяются во время сборки для вашей окончательной сборки.
Если это ресурсы javascript, сборка о них не узнает. Вам необходимо структурировать его как внешнюю библиотеку javascript и сохранить их в глобальной переменной, на которую вы можете ссылаться в своем коде. Затем вы можете загрузить эту библиотеку javascript в свой index.html
.
Это немного другой вопрос. Вы не можете ссылаться на код javascript в своем javascript публично, вам необходимо загрузить его как внешний исходный файл.
Скажем, вы хотите прочитать файл json, содержащий данные, вы можете сделать это следующим образом:
class App extends Component {
async getData() {
const res = await fetch("/json/sample.json");
const data = await res.text();
console.info(data);
return this.setState({ data });
}
componentDidMount() {
this.getData();
}
render() {
return (
<div className = "App">
<header className = "App-header">
<img src = {logo} className = "App-logo" alt = "logo" />
<div>{this.state.data}</div>
</header>
</div>
);
}
}
Где папка json
создается внутри общей папки. Все, что вы помещаете в общую папку, обслуживается автоматически при использовании create-react-app
. Надеюсь это поможет.
спасибо, я прочитал документы сейчас, тогда это должно быть возможно, но я не могу заставить его работать. Мне нужно импортировать эти данные в пару файлов js. Пока что большинство примеров относятся к ресурсам (мне удалось это сделать с изображениями), но мне нужно импортировать переменную из определенного файла. Я поместил этот файл в общую папку. Как именно я могу импортировать его в нужные скрипты?