Как отобразить HTML-контент в next.js

Я хочу отображать содержимое HTML-файла в next.js. Я узнал, что для этого можно использовать опасноSetInnerHTML в App.js.

Однако при его использовании я продолжаю видеть пустой белый экран. Я попытался отправить запрос GET в файл index.html, но все равно получаю белый экран.

App.js

import React, { useState, useEffect } from 'react';

function MyComponent() {
  const [htmlContent, setHtmlContent] = useState('');

  useEffect(() => {
    async function fetchHtml() {
      try {
        const response = await fetch('index.html');
        const html = await response.text();
        setHtmlContent(html);
      } catch (error) {
        console.error('Error fetching HTML file:', error);
      }
    }

    fetchHtml();
  }, []);

  return (
    <div dangerouslySetInnerHTML = {{ __html: htmlContent }} />
  );
}

export default MyComponent;

В моем index.html есть шаблонный код и <p>Hello World</p>, поэтому он должен отображать текст на странице, однако я получаю белый экран.

вот белый экран, который я получаю

Вот мой каталог файлов:

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
4
0
231
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам необходимо сделать index.html доступным из вашего приложения Next.js. Если index.html нет в общедоступном каталоге, вызов fetch не сможет получить к нему доступ, поскольку он не представлен как статический файл.

Переместите index.html в папку public. Тогда URL-адрес получения должен правильно указывать на этот файл как /index.html.

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

Файл index.html, расположенный в папке pages, недоступен для вашего приложения.

Вот что вы можете попытаться сделать, чтобы сделать его доступным для скачивания:

  1. перейдите на свою страницу (файл index.html) в папку public. переименуйте файл в template.html);
  2. измените const response = await fetch('index.html'); на const response = await fetch('/template.html');. `

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