asp.net-mvc - .NET 核心 NToastNotify nuget 包在 /_content/NToastNotify/toastr.js?7.0.0.0 上返回 404,但仅在 PROD 上
问题描述
我将 NToastNotify nuget 包 (v7.0.0) 与.NET core 3.1
.
services.AddMvc(options =>
{
options.EnableEndpointRouting = false;
options.Conventions.Add(new RouteTokenTransformerConvention(
new SlugifyParameterTransformer()));
})
.AddNToastNotifyToastr(new ToastrOptions
{
NewestOnTop = true,
TimeOut = 10000,
ProgressBar = false,
PositionClass = ToastPositions.BottomRight
}, new NToastNotifyOption()
{
ScriptSrc = "/js/toastr.min.js",
StyleHref = "/css/toastr.min.css"
});
我app.UseNToastNotify();
在方法中添加了中间件,Configure
并在布局页面的 body 标记中添加了@await Component.InvokeAsync("NToastNotify")
位。
一切都在开发中完美运行,但在生产中,当它尝试下载JS
文件时返回 404。如您所见,我也尝试覆盖脚本源,但仍然没有运气。
该@await Component.InvokeAsync("NToastNotify")
部分实际上将呈现以下内容
<script src=/_content/NToastNotify/toastr.js?7.0.0.0 type="text/javascript"></script>
<script>
if (nToastNotify) {
nToastNotify.init({
firstLoadEvent: 'DOMContentLoaded',
messages: [],
responseHeaderKey: 'X-NToastNotify-Messages',
requestHeaderKey: 'X-Requested-With',
libraryDetails:{"varName":"toastr","scriptSrc":"https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.min.js","styleHref":"https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css","options":{"positionClass":"toast-bottom-right","timeOut":10000,"newestOnTop":true,"progressBar":false,"type":"success"}},
disableAjaxToasts:false
});
};
</script>
我会得到以下两个错误GET https://xy.hu/_content/NToastNotify/toastr.js?7.0.0.0 net::ERR_ABORTED 404
和Uncaught ReferenceError: nToastNotify is not defined
整个站点通过 Cloudflare 运行。我不确定这是否是它在生产中不起作用的原因。顺便说一下,这个 _content 文件夹在任何环境中都不存在,并且通过 nuget 包以某种方式下载。
解决方案
根据错误信息,我猜这个问题可能与 Cloudflare 托管文件夹路径有关。为避免此问题,我建议您可以尝试以下解决方法。
您可以在视图中手动添加引用,如下所示:
<script src=https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.min.js?7.0.0.0 type="text/javascript"></script>
或者直接下载脚本并添加相对路径。
推荐阅读
- json - restufl 服务中 apex_json.get_number 的问题
- listview - 如果设置了堆栈布局的背景颜色,则突出显示 ListView 的选定项
- python - 在 Python 中查找特定字符串中的数字
- swift - 打开弹出框后弹出框背景的状态栏色调颜色变为白色
- c++ - 在 C++ 上使用 Cocoa 创建一个简单的 OpenGL 应用程序
- jquery - JQuery 选择器中的数组变量
- java - 为什么我用 Apache PdfBox 创建的 pdf 没有集成新行?
- python - 在 Python 中自定义对分组数据框进行排序
- google-bigquery - 如何使用 google bigquery 为 GDELT gfg 添加特定国家/地区的指定字数搜索
- c - int (**p)[2] 声明了什么?什么将存储在数组 **p 中?