В приложении .NET 8 Razor Pages, когда я переключаю переменную среды ASPNETCORE_ENVIRONMENT на Производство, мое приложение работает совершенно нормально, за исключением того, что оно не загружает файлы JavaScript, которые не расположены непосредственно в папке wwwroot.
Все мои файлы appsettings.json идентичны и не меняются в зависимости от ASPNETCORE_ENVIRONMENT.
Например, в пути \Areas\Admin\Pages\Dashboard\Index.cshtml у меня есть страница razor и сопровождающий ее файл javascript \Areas\Admin\Pages\Dashboard\Index.cshtml.js. Это отлично работает, когда для ASPNETCORE_ENVIRONMENT установлено значение Development, но если установлено значение Production, в моем браузере появляется следующая ошибка: Failed to load resource: the server responded with a status of 404 (Not Found).
В дополнение к этому styles.css (который, как я предполагаю, генерируется в процессе сборки) также не загружается в среде Production.
Мой скрипт включается следующим образом:
@section Scripts {
<script src = "~/Areas/Admin/Pages/Dashboard/Index.cshtml.js" asp-append-version = "true"></script>
}
Кроме того, после проверки папки публикации кажется, что сценарии правильно размещены в пути к файлам: \bin\Release\net8.0\publish\wwwroot\Areas\Admin\Pages\Dashboard\Index.cshtml.js
Приветствуются любые идеи о том, что может быть причиной этого.
@JasonPan Интересно, хотя я изо всех сил пытаюсь понять, почему переменные моей среды являются решающим фактором в том, работает ли эта функция. Кажется, это либо должно работать, либо нет.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


После поиска любого вопроса, похожего на мою проблему, я нашел этот пост: AspCore 404 в производственной среде. Этот ответ полностью решил мою проблему:
Я добавил StaticWebAssetsLoader.UseStaticWebAssets(app.Environment, app.Configuration); в свой program.cs файл, и все статические файлы теперь корректно загружаются во всех средах.
Похоже, проблема связана с изоляцией JS в представлениях Razor Pages/MVC, на самом деле ее не существует . Рекомендуем добавлять JS-файлы в папку wwwroot.