关于 ASP.NET 项目中路径中的“~”波浪线无法解析的问题

2020-02-24 12:01:51 +08:00
 peng0416
2487 次点击
所在节点    .NET
7 条回复
peng0416
2020-02-24 12:03:31 +08:00
<script type="text/javascript" src="~/lib/jquery/dist/jquery.js"></script>
<script type="text/javascript" src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
<link href="/lib/bootstrap/dist/css/bootstrap.css" rel="stylesheet" />
<link href="/lib/bootstrap/dist/css/bootstrap-theme.css" rel="stylesheet" />

路径最前面加了~的就会报 404
opengps
2020-02-24 12:56:37 +08:00
波浪线是给服务端用来识别根目录的,建议使用服务端标签替换引用,例如:
<link href="<%=ResolveUrl("~/bootstrap/css/bootstrap.min.css") %>" rel="stylesheet" />
sun1991
2020-02-24 13:12:37 +08:00
波浪线是在 server 端解析替换掉的, 你用在 client 端没用. asp.net 内置的 helper 里面才能用.
peng0416
2020-02-25 11:13:13 +08:00
@sun1991 我是在 Visual Studio 中智能提示打出来的,iis 没有解析它,然后这个问题是突然之间出现的,并且在其他项目中这个波浪线是没有问题的。
peng0416
2020-02-25 11:14:58 +08:00
@opengps IIS 没有识别这个波浪线,而是直接把“~/lib/jquery/dist/jquery.js”原封不动的输出到客户端了(在浏览器 F12 中就可以看到包括“~”的路径,然后 404 )
peng0416
2020-02-25 12:24:09 +08:00
问题已经查出,是因为在"_ViewImports"中使用了 TagHelperFrefix 造成的,破案。。。。
Soar360
2020-02-25 17:16:21 +08:00
如果是 .cshtml 可以加上 asp-append-version="true"

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/647045

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX