我尝试使用rails,react和browserify创建一个Web应用程序。我一直关注this tutorial,因为我想要服务器端呈现,我已经使用this repo作为起点,并遵循README文件中提到的教程。
虽然我认为我已按照上述文章的建议做了一些事情,但我无法弄清楚如何解决以下错误:
TypeError: Object function ( w ) {
if ( !w.document ) {
throw new Error( "jQuery requires a window with a document" );
}
return factory( w );
} has no method 'extend'
如果要重现错误,请克隆my repo(即opensource及其在github上),然后转到功能分支auth
,安装gems和npm软件包并解除服务器:< / p>
$ cd path_to_project
$ git checkout -b feature/auth
$ bundle
$ npm install
$ bundle exec rails server
我真的很感激任何帮助,因为我现在被困在这里。另外,我有新的反应,所以我几乎不知道在哪里寻找问题。
编辑:根据评论中的请求,我已删除了堆栈跟踪,以使问题更具可读性。如果您需要任何额外信息,请告诉我。
答案 0 :(得分:0)
我碰巧使用j-toker
CommonJS包,内部使用onClick()
public void onClick(View view)
API。 jQuery与服务器端呈现不兼容,因为它需要jQuery
元素来加载自身,它只存在于浏览器中,而不存在于服务器中。该解决方案尚未到手,但作为J-Toker's author has indicated,他即将发布一个涵盖服务器端渲染案例的新库。
因此,对于遇到类似错误的任何人,请检查您是使用ajax
还是依赖于document
的任何其他包,或者需要拥有jquery
DOM元素,以及尝试使用服务器端渲染安全替代方案。