Перезагрузка страницы Blazor (подробно) приводит к ошибкам JavaScript - PullRequest
0 голосов
/ 03 ноября 2019

Я создал небольшой веб-сайт Blazor для себя, используя бесплатный шаблон, в котором есть несколько файлов javascript. Кажется, что все работает нормально, за исключением одной вещи.

Когда пользователь перезагружает (F5) страницу сведений о проекте, вся HTML-разметка исчезает, и консоль показывает кучу журналов ошибок, указывая, что он не может найтисвязанные файлы JavaScript. Перезагрузка любой другой страницы работает нормально.

Вот страница бритвы

@page "/project/{Slug}"

@using DOGA.Data
@using DOGA.Services
@inject ProjectService projectService
@inject NavigationManager navigationManager

@if (_project == null)
{
    <p><em>Loading...</em></p>
}
else
{
    <section id="pricing" class="pricing-area">
        <div class="container">
            <div class="row justify-content-center">
                <div class="col-lg-10">
                    <div class="section-title text-center pb-20">
                        <h3 class="title">@_project.Name</h3>
                        <p class="text">
                            @((MarkupString)_project.Description)

                            @if (_project.BulletPointList.Items.Any())
                            {
                                <br />

                                @_project.BulletPointList.Name
                                <br />
                                <br />
                                <ul style="text-align:left;">
                                    @foreach (var item in _project.BulletPointList.Items)
                                    {
                                        <li>
                                            <i class="lni-check-mark-circle"></i> @item
                                        </li>
                                    }

                                </ul>
                            }
                        </p>
                    </div> <!-- section title -->
                </div>
            </div> <!-- row -->
            @foreach (var image in _project.DetailImages)
            {
                <div class="row justify-content-center">
                    <div class="col-lg-12 col-md-7 col-sm-9">
                        <div class="pricing-style-one mt-40 wow fadeIn" data-wow-duration="1.5s" data-wow-delay="0.2s">
                            <div class="pricing-header text-center">
                                <h5 class="sub-title">@image.ImageName</h5>
                            </div>
                            <div class="text-center">
                                <img src="@image.ImageLink" alt="@image.ImageName">
                            </div>
                            <div class="text-center top-buffer">
                                <br />
                                @image.ImageDescription
                            </div>
                            @if (image.BulletPoints.Any())
                            {
                                <br />

                                <div class="pricing-list">
                                    <ul>
                                        @foreach (var item in image.BulletPoints)
                                        {
                                            <li><i class="lni-check-mark-circle"></i> @item</li>
                                        }
                                    </ul>
                                </div>
                            }
                        </div>
                    </div>
                </div>
            }
        </div>
    </section>
}

@code {
    [Parameter]
    public string Slug { get; set; }

    private Project _project { get; set; }

    protected override async Task OnInitializedAsync()
    {
        _project = await projectService.GetProjectAsync(Slug);

        if (_project == null)
        {
            navigationManager.NavigateTo("/");
        }
    }
}

Ошибка появляется как локально, так и на опубликованном лазурном сайте.

The error

На данный момент сайт развернут на Azure. Имейте в виду, это на голландском языке. Ошибка появляется при переходе на страницу портфолио, нажатии на один из трех проектов и последующем жестком обновлении. https://dogasolutions.azurewebsites.net/

РЕДАКТИРОВАТЬ: после исправления ссылок путем добавления '/' (благодаря gsharp), страница, кажется, перезагружается нормально, за исключением файла javascript Blazor.

В_host.cshtml внутри тегов body:

<app>
    @(await Html.RenderComponentAsync<App>(RenderMode.ServerPrerendered))
</app>

<script src="/_framework/blazor.server.js"></script>

enter image description here

1 Ответ

0 голосов
/ 04 ноября 2019

Я узнал, кто был виновником. Я использовал онлайн-шаблон, чтобы заменить большую часть моего _Host.cshtml файла. Таким образом, я переписал тег base в моем теге * 1003.

Простое добавление следующего кода в мой тег head полностью устранило проблему.

<base href="~/" />

Безэто, Blazor не может правильно разрешить соединение при переходе на страницы с подробностями (например, домен / страница / {параметр})

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