【问题标题】:Using JQuery in a Subfolder When the MasterPage is in the Root Folder当 MasterPage 在根文件夹中时在子文件夹中使用 JQuery
【发布时间】:2009-06-22 07:38:17
【问题描述】:

我正在尝试在名为“samples”的子文件夹中使用 ASP.NET 中的 jquery 库,其母版页位于根目录中。目前,对 jquery 脚本的引用位于母版页的 head 标记中。如果我正在创建的页面也在根目录中,那么一切正常。如果我将页面移动到“samples”子目录,jquery 就会中断。

我可以通过在 head 标签中使用类似以下内容来解决问题:

<script src="<%=ResolveUrl("~/js/jquery.js")%>" type="text/javascript"></script>

...但是我失去了使用 jquery intellisense 的能力,因为我在设计时不再直接连接到文件。

所以我的问题是:当我的页面位于子文件夹且母版页位于根目录时,如何在 .aspx 页面上使用 jquery 库而不会失去与智能感知的连接?

【问题讨论】:

    标签: jquery asp.net visual-studio master-pages intellisense


    【解决方案1】:

    只需使用这个:

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

    / before js 做的伎俩。我总是将我的 css 和 javascript 文件保存在不同的文件夹中,并使用此调整来正确包含它们。

    对于智能感知,你可以试试这个技巧:

    <%if(true){%>
        <script src="/js/jquery.js" type="text/javascript"></script>
    <%}%>
    

    我不记得这个伎俩的来源了。

    【讨论】:

    • 我也是这样做的,一个 JavaScript 和一个 Css 文件夹,直接在根目录下,然后使用服务器相对 URI 指向我的 CSS / JS 文件。
    • 我已经验证js之前的/确实允许代码在两个文件夹中运行(所以它是比ResolveUrl更好的解决方案),但它仍然不允许我看到智能感知。您列出的智能感知技巧也不起作用。
    • 我收回了。当我添加 后跟 然后它在根文件夹和子文件夹中都有效,而智能感知在这两个地方都有效。现在已经足够好了。谢谢。
    • 对不起,在第二行我的意思是指出 / 应该被删除,像这样:
    • 这对我也有用!我唯一要注意的是我必须使用 因为我不想包含两次文件...
    【解决方案2】:

    您可以使用脚本管理器来包含 JS 文件:

    <asp:ScriptManager runat="server">
        <Scripts>
            <asp:ScriptReference Path="~/js/jquery.js" />
        </Scripts>
    </asp:ScriptManager>
    

    【讨论】:

    • 这适用于两个文件夹,但不能将我连接到智能感知。
    • 非常有用的技巧,我在别处看到过,但没找到。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    相关资源
    最近更新 更多