1

这可能是一个令人痛苦的简单问题,对此我将被嘲笑,但我在母版页中使用文件路径时遇到了困难。我相信这是因为如果子目录中的页面要使用母版页,则文件路径不正确。

要解决这个问题,我需要从根目录获取文件路径,但我似乎无法让它工作。

我试过:

<script type="text/javascript" src="~/jQueryScripts/jquery.js"></script> 

<script type="text/javascript" src="../jQueryScripts/jquery.js"></script> 

也没有运气!

关于如何告诉它从根目录获取文件路径的任何想法?

4

4 回答 4

2

我只是通过文件路径假设,您实际上是指 url(或 uri,我忘记了哪个是部分的)。

没有~,第一个例子应该可以工作。 <script type="text/javascript" src="/jQueryScripts/jquery.js"></script>会导致浏览器请求http://www.example.com/jQueryScripts/jquery.js(其中 www.example.com 是您的域)。

于 2008-11-12T13:49:55.180 回答
1

我相信你需要runat=server在这个 URL rebase 的<head>标签中MasterPage工作。

<head runat="server">
于 2008-11-12T13:59:27.203 回答
1

首先前面的波浪号是用于服务器控件的 asp.net 东西,在基本的 HTML 中不起作用。

无需详细说明,您可以在前面使用斜杠 (/),如果它不是根站点,则包括 Web 应用程序名称。

或者您可以将代码放在您的母版页中以动态包含脚本,并让它处理路径。像:

    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 文件都会得到更新。

于 2008-11-12T14:08:59.273 回答
1

您可以使用Page.ResolveUrl方法来解决这个问题

例如:

<script type="text/javascript" src="<%=Page.ResolveUrl("~/jQueryScripts/jquery.js")%>"></script>
于 2008-11-12T14:21:37.830 回答