asp.net主页中的路径转换

时间:2017-07-25 15:55:13

标签: asp.net webforms master-pages

在Site.Master页面中,我引用了一些CSS和JS文件。 当子文件夹中的页面使用此母版页时,我可以通过在其前面添加必要的../来查看css文件的路径是否被正确翻译,但在JS的调试窗口中查看时,JS文件不会导致404错误

我厌倦了用runat = server来强制翻译;没用;尝试使用Page.ResolveURL,它没有提供任何错误消息,但似乎打破了脚本,不知道我该如何工作。

在Site.Master中:

<!-- Bootstrap Core CSS -->
<link href="assets/css/bootstrap.min.css" rel="stylesheet" />

对于子文件夹中的.aspx页面,它会正确显示如下:

<link href="../assets/css/bootstrap.min.css" rel="stylesheet" />

对于JS文件,以下都不起作用。

这个显示与子文件夹中的同一文件一样:

<!-- Bootstrap Core JavaScript -->
<script src="assets/scripts/bootstrap.min.js"></script>

这个没有显示404错误;一个“/&lt; sitename&gt; /”会被添加到路径中,但脚本不起作用(例如,下拉菜单不会丢失)

<!-- Bootstrap Core JavaScript -->
<script src='<%= Page.ResolveUrl("~/assets/scripts/bootstrap.min.js") %>'></script>

这一次,我认为我不能这样做!

<!-- Bootstrap Core JavaScript -->
<script runat="server" src="~/assets/scripts/bootstrap.min.js"></script>

1 个答案:

答案 0 :(得分:1)

我找到了答案here。该帖子提供了一些选项,但是作为答案的Edit2列出的内容对我有用:

<!-- jQuery -->
<script type="text/javascript" src='<%= Page.ResolveClientUrl("~/assets/scripts/jquery.js") %>' ></script>

<!-- Bootstrap Core JavaScript -->
<script type="text/javascript" src='<%= Page.ResolveClientUrl("~/assets/scripts/bootstrap.min.js") %>' ></script>