javascript - 通过 URL 访问剃须刀页面时,浏览器尝试从无效地址加载 JS 文件
问题描述
我已将剃须刀页面设置为我的应用程序的登录页面:
options.Conventions.AddAreaPageRoute("Home","/Home/Index", "");
我的页面都包含在区域中,所以为了更容易通过 url 访问它们,我想避免写额外的区域名称,所以从 Home/Home/page 到 Home/Index:
options.Conventions.AddAreaPageRouteModelConvention("Home", "/Home/Index", model =>
{
foreach (var selector in model.Selectors)
{
selector.AttributeRouteModel = new AttributeRouteModel
{
Template = new string(selector.AttributeRouteModel.Template.SkipWhile(c => c != '/').Skip(1).ToArray()),
};
}
});
我还修改了我的应用设置:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "Default",
template: "{area=Home}/{page=Index}");
});
我删除了所有其他 mapRoutes,包括控制器路由等。
添加此代码段后,我尝试通过 /Home/Index 访问页面,并且成功了,但是我的 js 脚本没有加载,因此无法运行。然后我删除了上述选项并尝试通过 Home/Home/Index 访问该页面,但我的脚本仍未加载。如果我使用我设置的锚,它们会加载属性:
<a class="nav-bar-brand" asp-area="Home" asp-page="/Home/Index">...</a>
脚本文件包含在布局中:
<script src="js/site.js" type="text/javascript"></script>
问题似乎是浏览器在错误的位置查找文件,这是 General 标头包含“ https://localhost/Home/Home/js/site.js ”的请求 URL,而实际上正确的地址是“ https://localhost/js/site.js ”,为什么会发生这种情况,我该如何解决?
解决方案
<script src="**~/**js/site.js" type="text/javascript"></script>
您必须更新您的代码。(
/
或者
~/
从域根文件夹开始)
推荐阅读
- javascript - 打字稿中的 React HOC 组件给出警告(从非打字稿转换)
- c# - XMLWorkerHelper 不包含在 c# 中采用 0 个参数的构造函数
- java - 如何将我的布局滚动到 android 中的特定文本视图?
- python - 为什么当我尝试创建类的对象时代码显示 SyntaxError: invalid syntax?
- javascript - AJAX 和头/脚更新最佳实践
- flurry - 如何动态创建广告系列?
- sql-server - iis express 上的 web 应用程序的配置问题
- .net - FileStream 缓冲区是否支持不自动刷新的随机写入?
- c# - 如何循环并仅提取标记之间的数据?
- kotlin - 测量 kotlin 协程性能