Configuration requirejs配置问题

Configuration requirejs配置问题,configuration,requirejs,config,Configuration,Requirejs,Config,由于一个项目中有一个FUBAR目录组织,我花了一些时间重新组织了该项目上的JS脚本。该项目使用requirejs,在重新组织之前运行良好。然而,现在调用或编译时(我们使用r.js优化器)不会加载任何内容,尽管编译完成时没有任何问题。我已经检查过了,双重检查过了,三次检查过了,现在我开始要求对堆栈溢出进行另一组检查 使用RequireJS:2.1.4和r.js 2.1.4 以下是我的配置: build-js.js(用于优化器) config.js // Set the require.js con

由于一个项目中有一个FUBAR目录组织,我花了一些时间重新组织了该项目上的JS脚本。该项目使用requirejs,在重新组织之前运行良好。然而,现在调用或编译时(我们使用r.js优化器)不会加载任何内容,尽管编译完成时没有任何问题。我已经检查过了,双重检查过了,三次检查过了,现在我开始要求对堆栈溢出进行另一组检查

使用RequireJS:2.1.4和r.js 2.1.4

以下是我的配置:

build-js.js(用于优化器)

config.js

// Set the require.js configuration for your application.
require.config({
    paths: {
        // JavaScript folders
        libs: "library",
        plugins: "plugin",
        app: "app",
        adminlibs: "../adminassets/js/plugins/ui",

        // Libraries
        jquery: "library/jquery",
        jqcookie: "library/jquery.cookie",
        jqui: "../adminassets/js/plugins/ui/jquery-ui-1.10.0.custom.min",
        jqezmark: "library/jquery.ezmark",
        jqcolor: "library/jquery.color",
        underscore: "library/underscore-amdjs",
        backbone: "library/backbone-amdjs",
        chosen: "library/chosen.jquery", 
        moment: "library/moment",

        // Site Components 
        site: "app/site",
        sitediscussion: "app/site-discussion",
        namespace: "app/namespace",

        // Plugins
        text: "plugin/text", 
        async: "plugin/async", 
        use: "plugin/use",
        datetimepicker: "../adminassets/js/plugins/ui/jquery.datetimepicker",
        ajaxfileupload: "../adminassets/js/plugins/uploader/jquery.ajaxfileupload"
    },

    shim: {
        'chosen': ['jquery'],
        'jqcookie': ['jquery'],
        'jqui': ['jquery'],
        'jqezmark': ['jquery'],
        'jqcolor': ['jquery'],
        'site': {
            deps: ['jquery','jqezmark','chosen','underscore','namespace','jqui','jqcookie'],
            exports: 'site'
        },
        'sitediscussion': {
            deps: ['jquery', 'underscore'],
            exports: 'sitediscussion'
        },
        'jquifull' : ['jquery'],
        'datetimepicker' : ['jqui'],
        'ajaxfileupload' : ['jquery'],
        'backbone': ['underscore','jquery']
    },

    // Initialize the application with the main application file
    deps: ["app/main"]
});
文件结构如下:

{site root}/public/js

其中包含目录:

应用程序 配置 图书馆 缩小 模块 插件 模板

build js和config.js中列出的所有文件都已确认位于预期文件夹中

requirejs的调用如下:

在开发人员机器上(我目前正在对其测试设置):
data main=“/js/config/config”src=“/js/library/require.js”

生产时(当前甚至没有创建缩小的/主文件,尽管它应该是这样的)
data main=“/js/minified/main”src=“/js/library/require.js”


有人能看出我做错了什么吗?同样,除了上面列出的两个文件(build-js.js和config.js)之外,没有对站点本身、javascript等进行任何更改。唯一的变化是文件已在目录结构中物理移动。因此,我几乎可以肯定,我在某个地方遇到了路径问题,但我似乎找不到它。帮助?

已找到解决方案。我是通过位于“/js/config/config”的requirejs include脚本标记中的data main属性引用配置文件的。尽管我声明了一个/public/js的基本路径,但系统仍然试图使用/js/config/作为我的基本路径(如requirejs文档中所述,如果没有声明基本路径,它将基于您的数据主属性创建基本路径)。我将config.js文件移到了/js,并将data main更改为/js/config,现在所有路径都正常工作,引用了基本路径/js


另一个注意事项是,由于使用了Zend框架和错误处理,我没有注意到文件加载失败。没有404错误,我的开发工具的网络选项卡显示加载所有.js文件成功。。。只有当我查看这些文件的响应内容时,我才发现它们是在抛出PHP错误日志,而不是.js内容。

已找到解决方案。我是通过位于“/js/config/config”的requirejs include脚本标记中的data main属性引用配置文件的。尽管我声明了一个/public/js的基本路径,但系统仍然试图使用/js/config/作为我的基本路径(如requirejs文档中所述,如果没有声明基本路径,它将基于您的数据主属性创建基本路径)。我将config.js文件移到了/js,并将data main更改为/js/config,现在所有路径都正常工作,引用了基本路径/js


另一个注意事项是,由于使用了Zend框架和错误处理,我没有注意到文件加载失败。没有404错误,我的开发工具的网络选项卡显示加载所有.js文件成功。。。只有当我查看这些文件的响应内容时,我才发现它们是在抛出PHP错误日志,而不是.js内容。

你从r.js中得到任何错误吗?是否有任何输出脚本方面的问题?您是否从r.js中得到任何错误?有什么东西可以得到输出脚本吗?
// Set the require.js configuration for your application.
require.config({
    paths: {
        // JavaScript folders
        libs: "library",
        plugins: "plugin",
        app: "app",
        adminlibs: "../adminassets/js/plugins/ui",

        // Libraries
        jquery: "library/jquery",
        jqcookie: "library/jquery.cookie",
        jqui: "../adminassets/js/plugins/ui/jquery-ui-1.10.0.custom.min",
        jqezmark: "library/jquery.ezmark",
        jqcolor: "library/jquery.color",
        underscore: "library/underscore-amdjs",
        backbone: "library/backbone-amdjs",
        chosen: "library/chosen.jquery", 
        moment: "library/moment",

        // Site Components 
        site: "app/site",
        sitediscussion: "app/site-discussion",
        namespace: "app/namespace",

        // Plugins
        text: "plugin/text", 
        async: "plugin/async", 
        use: "plugin/use",
        datetimepicker: "../adminassets/js/plugins/ui/jquery.datetimepicker",
        ajaxfileupload: "../adminassets/js/plugins/uploader/jquery.ajaxfileupload"
    },

    shim: {
        'chosen': ['jquery'],
        'jqcookie': ['jquery'],
        'jqui': ['jquery'],
        'jqezmark': ['jquery'],
        'jqcolor': ['jquery'],
        'site': {
            deps: ['jquery','jqezmark','chosen','underscore','namespace','jqui','jqcookie'],
            exports: 'site'
        },
        'sitediscussion': {
            deps: ['jquery', 'underscore'],
            exports: 'sitediscussion'
        },
        'jquifull' : ['jquery'],
        'datetimepicker' : ['jqui'],
        'ajaxfileupload' : ['jquery'],
        'backbone': ['underscore','jquery']
    },

    // Initialize the application with the main application file
    deps: ["app/main"]
});