这可能是一个非常痛苦的问题,我将被嘲笑,但我很难在masterpages中使用文件路径。我相信这是因为如果子目录中的页面使用母版页,则文件路径不正确。
要解决此问题,我需要从root获取文件路径,但我似乎无法使其正常工作。
我试过了:
<script type="text/javascript" src="~/jQueryScripts/jquery.js"></script>
和
<script type="text/javascript" src="../jQueryScripts/jquery.js"></script>
两者都没有运气!
关于如何告诉它从root获取文件路径的任何想法?谢谢:))
答案 0 :(得分:2)
我只是假设通过filepath,你实际上是指url(或uri,我忘了哪一个是部分的)。
没有〜,第一个例子应该有用。 <script type="text/javascript" src="/jQueryScripts/jquery.js"></script>
会导致浏览器请求http://www.example.com/jQueryScripts/jquery.js(www.example.com是您的域名)。
答案 1 :(得分:2)
如果您正在运行支持AJAX的网站,请参阅我对Preferred way to include relative reference to JavaScript in VS 2008 nested Masterpage的回答。
答案 2 :(得分:1)
我认为您需要在runat=server
的{{1}}标记中添加<head>
才能使此网址重新定位。
MasterPage
答案 3 :(得分:1)
首先关闭前面的代字号是一个用于服务器控件的asp.net,不能用于基本的HTML。
如果不详细解释,您可以在前面使用斜杠(/),如果不是根网站,请包含网络应用名称。
或者您可以将代码放在主页面中以动态包含脚本,并让它处理路径。像:
public void AddJavascript(string javascriptUrl)
{
HtmlGenericControl script = new HtmlGenericControl("script");
script.Attributes.Add("type", "text/javascript");
javascriptUrl += "?v" + Assembly.GetExecutingAssembly().GetName().Version;
script.Attributes.Add("src", ResolveUrl(javascriptUrl));
Page.Header.Controls.Add(script);
}
上面的代码还附加了程序集版本。我主要用它来开发,所以每当我构建时,我的javascript文件都会更新。
答案 4 :(得分:1)
您可以使用 Page.ResolveUrl 方法来解决此问题
例如:
<script type="text/javascript" src="<%=Page.ResolveUrl("~/jQueryScripts/jquery.js")%>"></script>