这可能是一个非常痛苦的问题,我将被嘲笑,但我很难在masterpages中使用文件路径。我相信这是因为如果子目录中的页面使用母版页,则文件路径不正确。

要解决此问题,我需要从root获取文件路径,但我似乎无法使其正常工作。

我试过了:

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

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

两者都没有运气!

关于如何告诉它从root获取文件路径的任何想法?谢谢:))

有帮助吗?

解决方案

我只是假设通过filepath,你实际上是指url(或uri,我忘了哪一个是部分的)。

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

其他提示

如果您正在运行支持AJAX的网站,请参阅我对在VS 2008嵌套母版页中包含对JavaScript的相对引用的首选方法

我认为您需要在runat=server<head>标记中MasterPage才能使此网址重新定位。

<head runat="server">

首先关闭前面的代字号是一个用于服务器控件的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文件都会更新。

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

例如:

<script type="text/javascript" src="<%=Page.ResolveUrl("~/jQueryScripts/jquery.js")%>"></script>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top