在Localhost上使用Chrome on Rails。这是该页面的修剪版本:
<!DOCTYPE html>
<head>
<link href='http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css' rel='stylesheet'>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script>
<script src='http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.js' type='text/javascript'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.3.1/jquery.cookie.min.js' type='text/javascript'></script>
<meta content="authenticity_token" name="csrf-param" />
<meta content="blahblah=" name="csrf-token" />
<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0 maximum-scale=1.0">
</head>
<body data-action='index' data-controller='application'>
</body>
在Chrome控制台(以及更远的脚本中)中,$.cookie
未定义且$.cookie("a", "b")
引发错误。
我已尝试过其他一些CDN,但同样的问题。
编辑: 我在Chrome Javascript控制台中试图解决问题,我猜想这是在页面加载后运行的。我可以检查一下&#34;资源&#34;选项卡,看到插件已加载没有问题。如果我重新排列以在Jquery之前链接插件,我会得到预期的错误。
答案 0 :(得分:1)
我通过“资源”标签检查了我的应用程序提供的javascript文件,发现我的application.js
仍然有JQuery,所以,大概是,当文件加载时,它正在重新定义没有Coookie的JQuery
之所以发生这种情况是因为我从使用gems加载JQuery到使用外部CDN,但不重新编译(或删除)我的资产。
通过从public/assets