这个问题在这里已有答案:

我们在主页中包含javascript时遇到了一些麻烦。 “〜/”根快捷方式似乎不起作用,因此我们必须手动输入将使用它的javascript路径,例如:“../../tooltip.js”

但问题是,如果嵌套页面位于不同的路径中,这种方法不起作用,因为尽管嵌套页面位于不同的位置,路径保持不变 - 任何有关如何使路径自动运行的解决方案都像对于css文件?

谢谢!

#1楼 票数:7 已采纳

~/是ASP.NET中的一个特殊实体,代表“应用程序根”。 只有在通过ASP.NET服务器控件传递该URL时才会发生转换,例如<asp:Image runat="server" ImageUrl="~/path..." /> 试图将它作为文本文本直接传递给客户端的东西,例如`将在浏览器中完全呈现。

有一些解决方案:

  1. 将脚本放在相对于域根目录的可预测位置,例如domain.com/scripts/script.js ,您可以将其称为/scripts/script.js 前面的/告诉客户端(浏览器)它是域根的绝对路径。

  2. 使用Page.ResolveClientUrl呈现正确的路径( <%=Page.ResolveClientUrl("~/script./js")%>

  3. 创建自己的服务器控件来处理~/ resolution。

  4. 将脚本嵌入为程序集资源

#2楼 票数:5

Cory Larson 建议

<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/tooltip.js") %>"></script>

#3楼 票数:0

尝试

<script type="text/javascript" src=<%=Request.ApplicationPath+"/Scripts/Script_Name"%>></script>

我一直在使用url重写,并且“〜”偶尔会对url中的特殊字符进行窒息,即使它们是编码的。

#4楼 票数:0

如果脚本标记位于HEAD元素中,则只使用相对于母版页的路径,asp.net将自动为您修复引用。 只需确保HEAD元素具有runat =“server”属性。

这对CSS文件也很有效。 这是我能够让他们在VS.NET设计器中解决的唯一方法。

以下是我项目的示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head id="Head1" runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="../styles/reset.css" />
    <link rel="stylesheet" type="text/css" href="../styles/960.css" />
    <link rel="stylesheet" type="text/css" href="../styles/default.css" />
    <link rel="stylesheet" type="text/css" href="../styles/buttons.css" />
    <script type="text/javascript" src="../jQuery/jquery-1.3.2.js"></script>
</head>

#5楼 票数:0

回答@ [包括Javascript和CSS] [1] http://www.codeproject.com/Articles/404942/Include-JavaScript-and-CSS-on-your-MasterPage

对于CSS文件:

<link href="<%# ResolveUrl("~/") %>css/custom-theme/jquery-ui-1.8.21.custom.css" rel="stylesheet" type="text/css" />

对于JavaScripts:

 <script src="<%# ResolveUrl("~/") %>Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>

#6楼 票数:0

链接样式表可以放在标题中(使用runat =“server”)并使用〜来解析根目录。 但是,Javascript文件不能以这种方式引用。 添加脚本的另一种方法是使用正文中的脚本管理器。

<html>
<head runat="server">
    <title>title</title>
    <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form runat="server">
<asp:ScriptManager ID="ScriptManager" runat="server" EnablePageMethods="true">
    <Scripts>
        <asp:ScriptReference Path="~/Scripts/jquery-1.4.2.js" />
        <asp:ScriptReference Path="~/Scripts/jquery-ui-1.8.custom.min.js" />
    </Scripts>
</asp:ScriptManager>
</body>
</html>

#7楼 票数:-1

你能用“〜/”解释你的意思吗? 它应该是你正在寻找的。 您可能会检查您的head标签是否具有runat =“server”属性,因为这可能会阻止“〜/”工作。

  ask by community wiki translate from so

未解决问题?本站智能推荐:

7回复

如何在asp.net母版页中插入javascript [复制]

这个问题在这里已有答案: ASP.Net主页面和文件路径发出 10个答案 我们在主页中包含javascript时遇到了一些麻烦。 “〜/”根快捷方式似乎不起作用,因此我们必须手动输入将使用它的javascript路径,例如:“../../tooltip.js”
1回复

如何在asp.net中修复Javascript计时器(母版页概念)

我试图在我的asp.net项目中添加Javascript计时器,该计时器已实现并根据需要运行,但是如果按任何键,它将对我不利。 但是计时器正在运行。 Js。 码 我从按钮控件调用它。 码 我将其显示到Label控件中。 在Page_PreInit中的“ s
5回复

ASP.NET母版页中的元素增强Javascript

我遇到了一个问题,做了一些挖掘工作,但是努力提出一个最终的答案/解决方案。 基本上,我有一些JavaScript(由第3方创建),可以对页面元素进行一些处理,使它们看起来更漂亮。 该代码在单个页面上(即没有母版)效果很好,但是,当我尝试将效果应用于母版中的内容页面时,它不起作用。
2回复

在ASP.Net母版页中引用Jquery

我正在使用Jquery库,并且我了解建议的方法是在网页底部的<body>标记内引用它,而不使用<head>标记。 但是当使用带有ASP.net的MasterPages时,如果我在MasterPage的底部包含Jquery库,那么.aspx文件中包含的各个脚本文件将无法工
1回复

在asp.net 2.0中使用javascript的母版页和内容页

嗨,我对.net编程非常陌生。我想从包含按钮的内容页面运行javascript。 我能够显示一个按钮,但不知道如何绑定动作。 在这方面帮助我。
2回复

如何将 JavaScript 文件链接到 ASP .Net 中的主/内容页面?

我正在尝试将所选下拉项目的值打印到标签中,而无需通过 JavaScript 回发页面。 我尝试将我的 JavaScript 文件链接到我的母版页,如下所示,但它不起作用。 我在下面包含了主页面和内容页面以及我的 JavaScript 文件。 我是否也必须将 JavaScript 文件链接到内容页面?
1回复

在asp.net中单击按钮的JavaScript在母版页中不起作用

我的问题是如何使用JavaScript单击ASP.NET中的按钮 当我不使用母版页时,它可以正常工作,但是当我将JavaScript代码放入母版页时,它不起作用。 问题是什么? 这是aspx代码 这是背后的代码 这是JavaScript代码
5回复

如何将javascript文件和CSS添加到asp.net中母版页的内容页面

如何将javascript文件和css添加到asp.net中母版页的内容页面。 我试图在我的ContentPage中包含一个日期时间选择器。 Bur它在masterpage上完美运行。 当我尝试在我的内容页面中放置它时,它不起作用。
2回复

ASP.NET将参数传递给母版页中的Javascript函数

我有一个调整大小的脚本,我从SO上找到的答案得到了。 它位于我页面中的HEAD占位符标记中。 在同一页面中,在内容占位符中,我有一个<img>标签需要运行“onclick”上方的功能。 因此,它需要像这样返回'this': 但是,这不起作用。 我不知道如
3回复

通过使用母版页的表单在asp.net中调用javascript函数

我正在使用Asp.net并设计一个网站。 我有一个包含标题,导航栏,侧边栏和页脚的主表单,该表单对于每个网页都是通用的,而内容区域对于每个页面都是不同的。 我正在使用母版页创建网页,并在内容区域添加控件。 但问题是我在网页中使用javascript,并想调用网页的方法onload函数。