вопрос новичка касательно ядра .net и реакции - PullRequest
0 голосов
/ 08 ноября 2018

Мой день веб-разработки был в .net 3 или 4, сейчас я пытаюсь обновить свой навык.

Итак, я установил .net core 2.1.5 и шаблон реагирования, затем создал проект реагирования в visual studio. Однако есть некоторые основные вещи, с которыми я борюсь:

  1. В файле startup.cs у меня есть следующие строки:

            app.UseSpa(spa =>
            {
                spa.Options.SourcePath = "ClientApp";
    
                if (env.IsDevelopment())
                {
                    spa.UseReactDevelopmentServer(npmScript: "start");
                }
            });
    

Рекомендуется, чтобы spa.UseReactDevelopmentServer(npmScript: "start"); был только для среды разработки, так что мне делать в производственной среде?

Если я просто закомментирую эту строку, она выдаст ошибки

Произошло необработанное исключение при обработке запроса. InvalidOperationException: промежуточному программному обеспечению страницы SPA по умолчанию не удалось вернуть страницу по умолчанию «/index.html», потому что она не была найдена, и нет другое промежуточное программное обеспечение обработало запрос.

  1. При запуске проекта из источника index.html я вижу, что эта строка была добавлена ​​в конце страницы. <script type="text/javascript" src="/static/js/bundle.js"></script>.

Так, кто добавил эту строку? Это встроенный реагирующий сервер разработки или процесс сборки? Как я вижу эти строки в package.json, я предполагаю, что именно сборка npm создала пакет? Если это так, то как мне сказать, чтобы он не связывал js, и я хотел бы сделать некоторую отладку в chrome для изучения кода.

  "scripts": {
    "start": "rimraf ./build && react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }

1 Ответ

0 голосов
/ 08 ноября 2018

Вы должны иметь возможность использовать AddSpaStaticFiles() в ConfigureServices, чтобы указать, что встроенные статические файлы React должны использоваться в производстве:

public void ConfigureServices(IServiceCollection services)
{
  // ...

  // In production, the React files will be served from this directory
  services.AddSpaStaticFiles(configuration =>
  {
    configuration.RootPath = "ClientApp/build";
  });

  // ...
}

Кроме того, я бы удостоверился, что у вас есть app.UseSpaStaticFiles(); в Configure().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...