Javascript 使用Require.js设置Symfony2和Backbone.js
我有一个非常简单的应用程序,类似于Todo,有一个名为Subject的实体 Symfony2将提供RESTAPI,主干应用程序将处理客户端发生的事情。 我一直在尝试设置我的项目,以便Require.js加载一个基本模型和一组非常简单的视图,但我总是遇到以下错误:Javascript 使用Require.js设置Symfony2和Backbone.js,javascript,symfony,backbone.js,requirejs,Javascript,Symfony,Backbone.js,Requirejs,我有一个非常简单的应用程序,类似于Todo,有一个名为Subject的实体 Symfony2将提供RESTAPI,主干应用程序将处理客户端发生的事情。 我一直在尝试设置我的项目,以便Require.js加载一个基本模型和一组非常简单的视图,但我总是遇到以下错误: "NetworkError: 404 Not Found - http://localhost:8000/bundles/pfiuser/js/app/.js" 接着 Error: Script error for: http://r
"NetworkError: 404 Not Found - http://localhost:8000/bundles/pfiuser/js/app/.js"
接着
Error: Script error for: http://requirejs.org/docs/errors.html#scripterror
In require.js line 166
最后是超时:
Error: Load timeout for modules: http://requirejs.org/docs/errors.html#timeout
我不太了解Require.js,但我认为它来自于我所做的一个不起作用的定义。以下是require的配置(我一直在根据我的工作):
然后我调用该应用程序:
require([
'{{ asset('bundles/pfiuser/js/app/app.js') }}'
], function(App){
App.initialize();
});
这在app.js中变得很奇怪。以下是基本文件:
define([
'jquery',
'underscore',
'backbone',
'router'
], function($, _, Backbone, Router){
var initialize = function(){
//Router.initialize();
}
return {
initialize: initialize
};
});
我得到了错误。如果我只对路由器(调用其他文件)进行注释,我仍然有错误。但是如果我对主干呼叫进行评论,我就不会再有错误了:
定义([
“jquery”,
“下划线”/,
"骨干",,
“路由器”/
],函数($,\,主干,路由器){
var initialize=函数(){
//路由器初始化();
}
}))
这个错误听起来很神秘,所以我不知道如何解决它。以下是我的项目目录结构供参考:
//In src/PFI/UserBundle/Resources/public/js/
app/
|-- collections
| |-- subjects.js
|-- models
| |-- subject.js
|-- templates
| |-- subjects
| | |-- list.html
|-- vendor
| //all the libraries installed via bower
|-- views
| |-- subjects
| |-- list.js
|-- app.js
|-- boilerplate.js
|-- main.js //(unused as I configure requirejs directly in the page layout)
|-- router.js
我也尝试在Symfony2中使用require,但我认为您不应该这样做:
require([
'{{ asset('bundles/pfiuser/js/app/app.js') }}'
], function(App){
App.initialize();
});
更像
require([
'app'
], function(App){
App.initialize();
});
实际上,您的基本url已经指定了路径,我认为,此外,您不应该在最后使用.js。(我看到了一些使用细枝过滤器| raw | escape'.js'的示例)
require([
'{{ asset('bundles/pfiuser/js/app/app.js') }}'
], function(App){
App.initialize();
});
require([
'app'
], function(App){
App.initialize();
});