Не удается найти файлы JS — Не удалось загрузить ресурс: сервер ответил со статусом 404 ()

#javascript #asp.net #model-view-controller #asp-net-core-spa-services

#javascript #asp.net #модель-представление-контроллер #asp-net-core-spa-services

Вопрос:

Я не могу понять, как заставить мой сайт загружать мои скрипты. У меня есть эти сценарии, реализованные в разделе моего файла _Layout.cshtml.

_Layout.cshtml

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - HighYieldSecondaryTradingApp</title>

<environment include="Development">
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
    <link rel="stylesheet" href="~/css/site.css" />
</environment>
<environment exclude="Development">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"
          asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
          asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
    <link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
</environment>
@*added by sean*@
<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/sammy-0.7.4.js"></script>
<script src="~/Scripts/bootstrap.js"></script>
<script src="~/scripts/layout-routing.js"></script>
</head>
  

Однако для всех 4 сценариев, которые я добавил внизу, я получаю эту ошибку во время выполнения:

 Failed to load resource: the server responded with a status of 404 ()
  

Ниже приведена моя структура папок.

структура папок

Я неправильно ссылаюсь на файлы?

Ответ №1:

Scripts папка должна находиться внутри wwwroot папки, чтобы сервер мог их найти.

Чтобы обслуживать статические файлы из другого каталога, используйте:

 app.UseStaticFiles(new StaticFileOptions()
{
    // Where the files are physicly located
    FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"Scripts")),
    // What relative url to serve the files from
    RequestPath = new PathString("/scripts")
});
  

в вашем методе Startup.cs Configure .

P.S Это не изменит, откуда сервер обслуживает, но добавит дополнительный каталог для обслуживания файлов.