Можно ли обслуживать статические файлы с помощью приложения create-response-app из общей папки?

В основном я сделал (относительно) простое приложение для клиента. Приложение работает и все такое, но они продолжают запрашивать изменения в данных.

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

Проблема в том, что fle входит в состав Buld, поэтому, если я хочу просто изменить некоторые статические данные без необходимости rbuild, я не могу!

У меня есть ресурсы, к которым мой файл данных может получить доступ в общей папке, и они работают нормально. Я пытался реализовать ту же идею с файлом js.

Я не могу импортировать файлы из-за пределов папки / src.

Есть ли способ получить доступ к статическим данным из статической папки, которая каким-то образом добавляется при сборке?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
33
0
61 155
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Да, вы можете разместить активы в статической папке.

Документы: использование общей папки

  • Вы можете указать путь в index.html с помощью %PUBLIC_URL%/path/resource.
  • Вы можете использовать process.env.PUBLIC_URL + '/path/resource' в коде javascript.

Оба этих подхода заменяются во время сборки для вашей окончательной сборки.

Если это ресурсы javascript, сборка о них не узнает. Вам необходимо структурировать его как внешнюю библиотеку javascript и сохранить их в глобальной переменной, на которую вы можете ссылаться в своем коде. Затем вы можете загрузить эту библиотеку javascript в свой index.html.

спасибо, я прочитал документы сейчас, тогда это должно быть возможно, но я не могу заставить его работать. Мне нужно импортировать эти данные в пару файлов js. Пока что большинство примеров относятся к ресурсам (мне удалось это сделать с изображениями), но мне нужно импортировать переменную из определенного файла. Я поместил этот файл в общую папку. Как именно я могу импортировать его в нужные скрипты?

xunux 26.10.2018 21:28

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

Steve Buzonas 26.10.2018 21:39

Скажем, вы хотите прочитать файл 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. Надеюсь это поможет.

Другие вопросы по теме