Где мне поместить тег скрипта blazor.server.js в приложение RazorPages?

Прямо сейчас он у меня внизу страницы макета _Layout.cshtml, который используется всеми остальными страницами. Проблема, с которой я столкнулся, заключается в том, что страницы в области Identity выдают ошибки в консоли при переходе на страницы Identity:

POST https://localhost:5001/Identity/Account/_blazor/negotiate 404

а также

blazor.server.js:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the 'Connected' State.

Эти ошибки заставляют меня думать, что я делаю что-то не так с тем, как включаю сервер Blazor в моем приложении RazorPages.

Так что мне интересно, должны ли я иметь только blazor.server.js скрипты на страницах, которые действительно используют Blazor? Есть ли способ сделать его доступным для областей, которые, по-видимому, не подходят для размещения в макете?


person Collin Brittain    schedule 25.10.2019    source источник
comment
Вы визуализируете компоненты Razor в своем приложении Razor Pages? И если да, покажите соответствующий код ...   -  person    schedule 25.10.2019
comment
Не забудьте добавить сервис Blazor в класс запуска   -  person Mofaggol Hoshen    schedule 26.10.2019
comment
Да, я использую бритвенные компоненты. Они правильно отображаются и функционируют на тех страницах, на которых они существуют. Это скорее вопрос о том, как правильно включить скрипт blazor.server.js или настроить его так, чтобы все области в проекте загружали его правильно.   -  person Collin Brittain    schedule 28.10.2019
comment
Также обратите внимание, что в области «Идентификация» нет компонентов бритвы, но консоль по-прежнему выдает эту ошибку.   -  person Collin Brittain    schedule 28.10.2019


Ответы (2)


Я считаю, что этот пост отвечает на мой вопрос:

Как использовать Blazor на стороне сервера внутри библиотеки компонентов бритвы с помощью областей?

По умолчанию служба SignalR использует относительный путь и не смогла найти конечную точку _blazor /gotiate в области. Предлагаемое изменение кода в _Layout заставит его использовать абсолютные пути и нормализовать до / _blazor /gotiate, где бы вы ни находились в структуре страницы.

person Collin Brittain    schedule 28.10.2019

Я знаю, что это поздно, но на случай, если это поможет другим.

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

Я добавил:

<base href="~/" />

в конце тега заголовка файла _layout.cshtml, находящегося в общей папке.

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

person David Randoll    schedule 15.12.2020