Как развернуть проект Create-react-app в Azure

Мы создали проект статического веб-приложения в Azure.

Поместил код в репозиторий GitHub.

Я добавил файл staticwebapp.config.json, потому что маршруты выдавали ошибки 404. Я обрабатываю ошибки 404 и каждый маршрут с помощью ReactRouter.

      {
  "navigationFallback": {
    "rewrite": "index.html"
  }
}

теперь я получаю это сообщение об ошибке на странице, на которой есть только 2 маршрута

Сервер содержимого отклонил запрос с указанием: BadRequest. Причина: слишком большое количество статических файлов.

Могу ли я делать что-то не так, или Azure может обрабатывать только приложения Nextjs, но не проекты CreateReactApp?

1 ответ

Ниже приведены шаги по созданию приложения React и его развертыванию в статическом веб-приложении Azure.

  • Создайте приложение React, используя следующую команду:
      npx create-react-app my-react-app
cd my-react-app

Добавлятьstaticwebapp.config.jsonв папку приложения React .

      {
  "navigationFallback": {
    "rewrite": "index.html"
  }
}

Соберите и отправьте приложение в Git.

  • Создайте статическое веб-приложение и выберите репозиторий Git, куда вы поместили код .
  • Просмотрите приложение после завершения действия Git.

введите сюда описание изображения

С маршрутизацией:

Вот исправленные предложения:

Ниже приведены шаги по созданию приложения React и его развертыванию в статическом веб-приложении Azure с маршрутизацией.

  • Справочник по коду DOC @Swaraj Gosavi и конфигурация маршрутизации статических веб-приложений Azure из MSDOC npm install react-router-dom
      
// src/index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import { HashRouter } from 'react-router-dom';

ReactDOM.render(
  <HashRouter>
    <App />
  </HashRouter>,
  document.getElementById('root')
);

      // src/Navbar.js

import React from 'react';
import { Link } from 'react-router-dom';
import './App.css';

export default function Navbar() {
  return (
    <div className="App">
      <center>
        <ul>
          <li><Link to="/">Home</Link></li>
          <li><Link to="/about">About</Link></li>
          <li><Link to="/contact">Contact</Link></li>
        </ul>
      </center>
    </div>
  );
}

      // src/templates/Home.js

import React from 'react';
import logo from '../logo.svg';
import '../App.css';

export default function Home() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React With Swaraj
        </a>
      </header>
    </div>
  );
}


      // src/templates/About.js

import React from 'react';

export default function About() {
  return (
    <div>
      <h1>
        <center>
          <p>
            This is About.
          </p>
          <a
            href="https://github.com/swarajgosavi/swarajgosavi"
            target="_blank"
            rel="noopener noreferrer"
          >
            About Me.
          </a>
        </center>
      </h1>
    </div>
  );
}




      

// src/templates/Contact.js

import React from 'react';

export default function Contact() {
  return (
    <div>
      <h1>
        <center>
          <p>
            You can Contact Me.
          </p>
          <a
            href="https://github.com/"
            target="_blank"
            rel="noopener noreferrer"
          >
            Sampath (GitHub) [@Sampath]
          </a>
        </center>
      </h1>
    </div>
  );
}

      
// src/App.js

import React from 'react';
import { Routes, Route } from 'react-router-dom';
import Home from './templates/Home';
import About from './templates/About';
import Contact from './templates/Contact';
import Navbar from './Navbar';

function App() {
  return (
    <>
      <Navbar />
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
        <Route path="/contact" element={<Contact />} />
      </Routes>
    </>
  );
}

export default App;

staticwebapp.config.json:

      {

"routes":  [

{

"route":  "/",

"allowedRoles":  ["anonymous"]

},

{

"route":  "/about",

"allowedRoles":  ["anonymous"]

},

{

"route":  "/contact",

"allowedRoles":  ["anonymous"]

},

{

"route":  "/profile*",

"allowedRoles":  ["authenticated"]

}

],

"navigationFallback":  {

"rewrite":  "/index.html"

},

"globalHeaders":  {

"cache-control":  "no-store, must-revalidate"

},

"trailingSlash":  "auto"

}

Отправьте код в Git:

введите сюда описание изображения

Статус развертывания в Git Action:

введите сюда описание изображения

Лазурный: введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

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