es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema de enrutamiento Blazor JS, no se encuentra el archivo static _blazor.js

Tengo una aplicación asp.net 6 a la que estoy intentando añadir un componente blazor del lado del servidor. Tengo mi programa configurado, estoy llamando a mi componente, pero cuando navego a la página, no encuentra el archivo blazor estático porque lo está insertando en la ruta. ¿Cómo puedo resolver esto?

Además, puedo hacer que los modos de renderizado estático y ServerPrerendered funcionen correctamente, pero no el modo Server, ya que requiere JavaScript.

builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddHttpContextAccessor();

var app = builder.Build();

// Configurar la canalización de solicitudes HTTP.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    // El valor HSTS predeterminado es de 30 días. Es posible que desee cambiar esto para escenarios de producción, consulte https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();

app.UseAuthorization();

app.MapRazorPages();
app.MapBlazorHub();
app.Run();

_Layout.cshtml

<script src="~/_framework/blazor.server.js"></script>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
@await RenderSectionAsync("Scripts", required: false)

Llamada al componente Search:

<component type="typeof(ItemSearch)" param-search="Model.Search" render-mode="Server"></component>

En mi página de índice:

Información: Normalizando '_blazor' a 'https://localhost:7216/_blazor'.

Una vez que hago una búsqueda:

https://localhost:7216/Search/_blazor/initializers 404 
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema de no poder encontrar el archivo estático de Blazor puede deberse a que la configuración de enrutamiento no está correctamente configurada. Para resolver esto, debes configurar el enrutamiento para incluir el componente Blazor, agregando puntos de conexión (endpoints) en el método Configure de tu archivo Startup.cs. Puedes hacer esto agregando el siguiente fragmento de código:

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapBlazorHub(); // mapea el punto de conexión del hub de Blazor en el servidor
        endpoints.MapFallbackToPage("/_Host"); // redirige a la página de índice que hospeda el componente Blazor
    });
    

    Esto mapeará el punto de conexión del hub de Blazor y establecerá la redirección a la página de índice (“/_Host”), que contendrá el componente Blazor.

    En cuanto al problema con el modo de representación del servidor (Server render mode), requiere que JavaScript esté habilitado para funcionar correctamente. Por lo tanto, debes asegurarte de que JavaScript esté habilitado en el navegador del cliente. Además, puedes intentar depurar el problema agregando declaraciones de registro (logging) en la consola para ver si hay mensajes de error relacionados con la carga del archivo de JavaScript.

    ¡Espero que esto te ayude!

Comments are closed.