gpt4 book ai didi

javascript - JQuery - 在本地工作,但 $ 未定义,但仅在部署的站点上定义

转载 作者:行者123 更新时间:2023-12-03 06:57:24 26 4
gpt4 key购买 nike

在 MVC 中构建一个站点,在布局文件中包含 jQuery,如下所示:

<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title</title>
@Scripts.Render("~/bundles/jquery")
@Styles.Render("~/Content/css")
</head>
<body>
<!-- content -->
</body>
</html>

JQuery 通过 nuget 引用并捆绑如下:

public class BundleConfig
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui.min.js",
"~/Scripts/stickyfill.js"));
}

在 Visual Studio 中本地运行该网站效果很好。

当我部署到 IIS 并尝试运行该站点时,我得到了可怕的 Uncaught ReferenceError: jQuery is not defined错误。

我检查的第一件事是 jQuery 包可通过部署页面尝试使用的地址获得:

/bundles/jquery?v=[a token]

就是这样。您甚至可以在 Chrome 开发者工具的 bundle 中看到它的引用。值得注意的是,通过相同的机制使用 token 部署的 css 工作正常。

我还找到了问题 JQuery - $ is not defined 的答案。然后要么消除它们,要么尝试它们,但都无济于事。

我唯一能想到的是它在首次调用 jQuery(document).ready() 之前没有加载。 - 这就是为什么我将 bundle 移至 <head>标签。但这没有帮助,而且我不知道还能做些什么来减慢或等待页面加载。

这到底还能是什么?

编辑:Somone 询问渲染页面的头部:

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>[the title]</title>
<script src="/bundles/jquery?v=[a token]"></script>
<link href="/Content/css?v=[a token]" rel="stylesheet"/>
</head>

最佳答案

试试这个:

public class BundleConfig
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-1.8.2.min.js",
"~/Scripts/jquery-ui.min.js",
"~/Scripts/stickyfill.js"));
}

关于javascript - JQuery - 在本地工作,但 $ 未定义,但仅在部署的站点上定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37213824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com