我的应用程序在本地使用 Requirejs 已经有一段时间没有问题了,但是当我把它放在远程服务器上时,我又开始看到与 Requirejs 相关的问题。
我有一个 jQuery 包装脚本,我在其中加载了实际的 jquery 和一些 jQuery 插件,例如 jquery.cookie。
## boot.js
// Loaded via <script data-main="/boot.js" src="/vendor/requirejs/require.js"></script>
require({
baseUrl: '/vendor/requirejs/',
waitSeconds: 5,
paths: {
jquery: '/vendor/jquery/dist/jquery',
jQuery: '/assets/javascripts/jquery-wrapper',
}
}, [
'jQuery'
], function($) {
...
});
});
## /assets/javascripts/jquery-wrapper.js
define([
'order!jquery',
'order!/vendor/jquery-cookie/jquery.cookie.js'
], function($) {
// In here I also define some on my own functions on $
return $;
});
问题是当我访问远程服务器上的应用程序时,在评估 jquery.cookie 脚本时“jQuery”是未定义的,这意味着它在加载 jQuery 之前正在运行。
Uncaught ReferenceError: jQuery is not defined jquery.cookie.js:47
(anonymous function) jquery.cookie.js:47
我虽然命令!前缀应该防止这样的事情发生吗?
同样,这在本地也能正常工作。只有在为远程服务器提供服务时,我才会遇到问题。
如果相关,我在本地使用的是瘦服务器。远程我也使用 Thin 但在 Nginx 之后,尽管 Nginx 只是将所有东西都代理给 Thin。
没有迹象表明在 5 秒超时内未找到文件。错误立即出现在控制台中。
谁能告诉我哪里出错了?
谢谢