Pensé que esto debería ser una obviedad, pero ya me ha causado horas de dolores de cabeza. Tengo una biblioteca de clases Razor (RCL) simple que incluye una página que contiene algo de JavaScript.
@page @*...*@ <h1>Test Page</h1> @section Scripts { <script type="text/javascript" src="~/lib/somejs.js"></script> <script type="text/javascript"> console.log("log something"); // works let something = new SomeJS("hello World"); </script> } También tengo un _Layout.cshtml que contiene @RenderSection("scripts", required: false) para permitir la inclusión condicional de la etiqueta del script .
El script proporcionado está incluido, pero a pesar de la referencia a ~/lib/somejs.js , se produce el siguiente error:
https://localhost:44385/lib/somejs.js net::ERR_ABORTED 404 El archivo requerido está dentro de la carpeta wwwroot/lib de RCL. Me parece que la ruta proporcionada es incorrecta, ya que espera los archivos en una carpeta inexistente dentro del proyecto web real en lugar de RCL.
¿Cómo puedo resolver la referencia correctamente desde dentro del RCL? Idealmente, el proyecto que lo usa no tiene que preocuparse por incluirlos manualmente.
EDITAR: incluso insertar la ruta codificada sugerida por Visual Studio no resuelve el problema, por ejemplo, src="../../wwwroot/lib/some.js" .