我有一个主要基于JavaScript的网站。它使用REST服务。我在JavaScript页面中硬编码了REST服务URL。该URL将从PROD更改为测试。每次我将这个站点部署到不同的环境时,我需要去更新.JS文件。管理这些的最佳方法是什么?有没有更好的方法来做到这一点?控制JavaScript中的设置
1
A
回答
2
您可以通过location.href
获取JS加载的当前页面的URL。使用这个和一些字符串操作,你可以动态地创建这些RESTful URL。
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的图书馆,该图书馆正式确定了上述模式,并增加了一些便利的花里胡哨的功能。我已将它添加到几个项目中,并发现它非常有用。
1
每个人都有一点不同,但通常这是使用构建系统完成的。在构建期间,在构建的服务器上有一个环境变量,其值为“prod”或“qa”或“dev”。当构建Web应用程序组件时,一个步骤就是使用适合环境的值替换放入文件中的令牌。
请注意,如果您为宁静的端点使用相对路径,则不需要执行此操作。如果您需要更改主机/协议/端口信息,则只需要执行此操作。这很糟糕。可能更好地了解您正在测试哪个环境并使用/ etc/hosts将标准URL映射到特定环境的URL。例如,如果你的应用程序使用
www.myapp.com
你能设置,即其URL映射到qa.myapp.com:80
的环境。您可以使用脚本来管理更改主机文件以适应您想要的任何环境。
相关问题
- 1. CMD控制台的设置
- 2. 在WebBrowser控件中设置JavaScript事件
- 3. 动态设置控制ID
- 4. 可可控制设置Shorcuts
- 5. 视图控制器设置
- 6. 设置控制器测试
- 7. 设置标签控制文本属性在客户端的JavaScript
- 8. 在控制模板中设置属性
- 9. 在ui.bootstrap.modal中设置电流控制器
- 10. 在控制器中设置字段
- 11. 在控制器中设置app.config
- 12. 在asp.net中设置缓存控制
- 13. 无法在Android设备监视器中设置位置控制
- 14. 在Codeigniter中的控制器中动态设置配置值?
- 15. Javascript集中控制
- 16. 自动设置控制台xy位置
- 17. 将控制位置设置为原始
- 18. 控制的XAML内容设置到控制
- 19. 设置根视图控制器的模态视图控制器
- 20. 的iPad设置一个UIView控制器
- 21. 如何设置控制器的布局
- 22. 流量控制的时间设置
- 23. 控制是白色的设置DefaultStyleKey
- 24. 设置控制器的“视图名称”
- 25. 从控制器设置表格的值
- 26. 由plist控制的应用内设置?
- 27. 设置的TabBar视图 - 控制
- 28. 控制模板上的WPF设置
- 29. 设置控制常规的方法值
- 30. 加快我的控制台设置