我有一堆静态javascript文件处理AJAX函数来查询我的应用程序的各个部分,我部署了我的应用程序的多个版本,所以我可能有以下几点:
https://www.myurl.com/projectName/ - production release
https://www.myurl.com/projectName_alpha/ - current alpha release
https://www.myurl.com/projectName_beta/ - current beta release
https://www.myurl.com/projectName_unstable/ - current development build
所以如果我有一个控制器“foo”我想要进行AJAX调用,我就不能硬编码/ projectName / foo作为URL(因为它总是指向生产版本).目前,我在每个视图中注入一个脚本,该脚本将项目的基本URL作为全局变量:
// declare a global variable to hold the project's base URL
var baseUrl = '';
然后在javascript文件中引用它:
var url = baseUrl + 'foo/';
它是功能性的,但是一个丑陋的解决方案,如果我可以避免它,我宁愿不污染全局命名空间.有没有人对如何实施更好的解决方法有任何建议?
为了澄清:解决方案应该适用于任何类型的请求,无论是否是基于AJAX的 – 调用window.open,设置< img>的src属性.标记,以及对控制器进行AJAX调用都应该与解决方案一起使用.它也应该适用,无论基本URL是什么或它有多少层,例如:
https://www.myurl.com/
https://www.myurl.com/projectName/
https://www.myurl.com/projectName_alpha/1.2.3/
应该都能正确检测到.