解析 ASP.NET 中受 app.Map 影响的 js 和 css url 5
Resolving js and css urls affected by app.Map in ASP.NET 5
我正在根据请求的第一个文件夹段实施多租户 url。
因此,我通过像这样使用 IApplicationBuilder 进行分支来分别配置每个租户:
PathString path = new PathString("/somefolder");
app.Map(path,
branchApp =>
{
// code goes here to configure the branch
}
因此,如果我的视图有一个 link 和 url /Home/About,例如,它会自动调整为相对于我访问时分支的文件夹/somefolder,即 links 更改为 /somefolder/Home/About、somefolder/Home/Contact 等
这对我来说有点出乎意料,但实际上很有帮助。
但如果我的观点有
<link rel="stylesheet" href="~/css/site.css" />
<script src="~/js/lib/jquery/dist/jquery.js"></script>
那些现在解析为 /somefolder/css/site.css 和 /somefolder/js/lib/jquery/dist/jquery.js
这不是我想要的。
有什么方法可以改变 js 和 css 的这种行为,但保留它用于导航 links?
不,你不能。至少,不容易:当使用 app.Map
时,它会自动将 HttpContext.Request.PathBase
设置为您指定的路径参数,这会导致您所看到的确切行为(它基本上是 "virtual directory" 等价物)。
最好的选择是停止使用虚拟路径链接 (~/
) 并用标准的根相对链接 (/
) 替换它们,Razor 和 MVC 不会处理这些链接。
<link rel="stylesheet" href="/css/site.css" />
<script src="/js/lib/jquery/dist/jquery.js"></script>
我正在根据请求的第一个文件夹段实施多租户 url。 因此,我通过像这样使用 IApplicationBuilder 进行分支来分别配置每个租户:
PathString path = new PathString("/somefolder");
app.Map(path,
branchApp =>
{
// code goes here to configure the branch
}
因此,如果我的视图有一个 link 和 url /Home/About,例如,它会自动调整为相对于我访问时分支的文件夹/somefolder,即 links 更改为 /somefolder/Home/About、somefolder/Home/Contact 等
这对我来说有点出乎意料,但实际上很有帮助。 但如果我的观点有
<link rel="stylesheet" href="~/css/site.css" />
<script src="~/js/lib/jquery/dist/jquery.js"></script>
那些现在解析为 /somefolder/css/site.css 和 /somefolder/js/lib/jquery/dist/jquery.js
这不是我想要的。
有什么方法可以改变 js 和 css 的这种行为,但保留它用于导航 links?
不,你不能。至少,不容易:当使用 app.Map
时,它会自动将 HttpContext.Request.PathBase
设置为您指定的路径参数,这会导致您所看到的确切行为(它基本上是 "virtual directory" 等价物)。
最好的选择是停止使用虚拟路径链接 (~/
) 并用标准的根相对链接 (/
) 替换它们,Razor 和 MVC 不会处理这些链接。
<link rel="stylesheet" href="/css/site.css" />
<script src="/js/lib/jquery/dist/jquery.js"></script>