我的前端内容需要后端REST API才能运行。 API允许跨源资源共享(CORS)。通常我们在本地运行完整的堆栈,包括为开发使用量身定制的用户模式Nginx实例,它为前端内容提供服务。然而,完整的堆栈有点太多,不足以让兼职承包商争吵。所以我想要一种非常基本的方法,他们可以使用它来有效地完成工作。
他们目前的解决方案很可怕:
var port = location.port;
// base url of backend API
var url = window.location['origin'];
if (port != '443') {
// assume we're running in "development" mode against a staging server
url = "https://staging-server.somewhere.com";
}
除了这会使前端内容进一步发展之外,它还会阻止静态内容以各种其他方式进行托管,包括一系列功能和集成测试。
我有一些想法,比如让他们运行一个代理后端API的小型Web服务器,但我真正想要的是更简单的东西,允许我以较少的方式默认url
。理想情况下,会有某种方式从版本控制忽略的文件中配置url
(例如,.gitignore
)。
答案 0 :(得分:0)
我能够创建一个适用于各种本地开发和生产版本的解决方案。
我创建了一些JavaScript,apiurl.js
,与我们所有其他JavaScript内容并列。如果apiurl.js
文件存在,我会将其responseText
读入eval()
。因此,前端可以根据该文件的内容更改URL。
例如,apiurl.js
有:
var apiurl = "https://staging-server.somewhere.com";
用于处理内容的JavaScript:
eval(responseText);
if (typeof(apiurl) != undefined) {
url = apiurl;
}
apiurl.js
文件未被版本控制跟踪,未在生产中使用。