我的网站主要基于JavaScript。它使用REST服务。我在JavaScript页面中对REST服务URL进行了硬编码。 URL将从PROD更改为测试。每次我将此站点部署到不同的环境时,我都需要更新.JS文件。管理这些的最佳方法是什么?有更好的方法吗?
答案 0 :(得分:2)
您可以使用location.href
获取加载JS的当前页面的URL。使用它和一些字符串操作,您可以动态创建这些RESTful URL。
答案 1 :(得分:1)
我通常会将这些地址和其他部署敏感值分离到服务器在运行时生成的单独脚本块中。
示例:( ASP.NET MVC,但可以是任何语言/框架)
<script type="text/javascript">
var pageOptions =
{
"detailsDataUrl": '@Url.Action("LoadDetail", "Contact")',
"applicationBase": '@Url.Content("~")'
};
</script>
您可以使用此类数据交替使用一个文件的多个版本,部署过程的一部分是部署环境版本。
更新:K。Scott Allen在将数据从您的服务器代码传递到您的javascript代码的不同选项上做了一篇非常好的帖子,这只是一个例子。你可以阅读它here。特别是他提到了一个名为NGON的图书馆,它正式化了上述模式,并添加了一些方便的铃声和口哨声。我已将它添加到几个项目中,并发现它非常有用。
答案 2 :(得分:1)
每个人都有所不同,但通常这是使用构建系统完成的。在构建期间,服务器上有一个环境变量在进行构建时,其值为“prod”或“qa”或“dev”。构建Web应用程序组件时,一步涉及使用适合环境的值替换放在文件中的标记。
请注意,如果您为restful端点使用相对路径,则无需执行此操作。如果需要更改主机/协议/端口信息,则只需执行此操作。哪个很烂。可能更好地了解您正在测试的环境,并使用/ etc / hosts将标准URL映射到特定于环境的URL。例如,如果您的应用使用
www.myapp.com
您可以设置一个将该网址映射到qa.myapp.com:80
的环境。您可以使用脚本来管理更改所需环境的主机文件。