Javascript Ext JS应用程序中的部署:更改存储中的URL
我正在为我正在构建的应用程序制定构建过程(使用Ext JS+另一个应用程序的后端),并尝试看看是否有一种“最佳实践”方法可以将本地URL(例如data/my data.json)更改到开发服务器的后端,然后再更改到生产服务器的后端 在我的门店中,我目前拥有以下代码:Javascript Ext JS应用程序中的部署:更改存储中的URL,javascript,deployment,extjs,Javascript,Deployment,Extjs,我正在为我正在构建的应用程序制定构建过程(使用Ext JS+另一个应用程序的后端),并尝试看看是否有一种“最佳实践”方法可以将本地URL(例如data/my data.json)更改到开发服务器的后端,然后再更改到生产服务器的后端 在我的门店中,我目前拥有以下代码: Ext.define('APP.store.DataRecords', { extend: 'Ext.data.Store', model: 'APP.model.DataRecord', autoLoad:
Ext.define('APP.store.DataRecords', {
extend: 'Ext.data.Store',
model: 'APP.model.DataRecord',
autoLoad: true,
proxy: {
type: 'ajax',
api: {
read: 'data/data-records.json',
update: 'data/update-data-records.json'
},
reader: {
type: 'json',
root: 'records',
successProperty: 'success'
}
}
});
在运行sencha build命令时,理想情况下,我希望将存储转换为如下内容:
Ext.define('APP.store.DataRecords', {
extend: 'Ext.data.Store',
model: 'APP.model.DataRecord',
autoLoad: true,
proxy: {
type: 'ajax',
api: {
read: 'http://mydevserver/.../data-records.json',
update: 'http://mydevserver/.../update-data-records.json'
},
reader: {
type: 'json',
root: 'records',
successProperty: 'success'
}
}
});
我想,如果没有任何“直接”方法,我将需要构建一个额外的脚本,该脚本将首先重新映射所有URL,然后调用sencha编译器
p.S.我知道,通常情况下,通过使用“相对”URL,这一切都是透明的,但我与之交互的后端有一些限制,这就阻止了这一点
想法
提前谢谢 我建议在连接到您的商店时不要使用完整的URL。如果您正在使用Ajax调用并试图转到其他域名,则此类调用将被视为跨站点调用,浏览器将阻止它们。在您的app.json中
/**
*覆盖对象以设置特定于生成环境的
*设置。
*/
“生产”:{
“api_url”:http://example.com"
},
“测试”:{
“api_url”:http://localhost:3000"
},
“发展”:{
“api_url”:http://localhost:3000"
},
使用完整的URL肯定会引起问题,但在这种情况下,我应该能够很快将其从AJAX切换到JSONP。然而,目前我已经采用了只使用相对URL的方法,这可能会在以后的过程中导致问题。仍然有兴趣听取任何人是否有可能使用的替代方法。