我的项目中使用的AJAX URL在不同的环境(即开发/测试和生产)中会发生变化,如下所示:
开发/测试:
制作:
解决这个问题的最佳方法是什么?
我的项目是MVC项目,但是我不想使用HTML Helpers来生成URL,因为我不想将C#与我的JS脚本混合使用
答案 0 :(得分:0)
您可以使用此Visual Studio扩展 Slow Cheetah https://github.com/Microsoft/slow-cheetah
实际上,此插件会在应用程序发布时更改web.config文件。在您的web.config中,您可以存储2个不同的API端点。
在您的Dev Web.config上
<appSettings>
<add key="Endpoint" value="http://localhost:60000" />
</appSettings>
生产中
<appSettings>
<add key="Endpoint" value="http://production.com/myProject/" />
</appSettings>
然后您可以像这样获得端点
System.Configuration.ConfigurationManager.AppSettings.Get("Endpoint").ToString();
答案 1 :(得分:0)
因此,此值应来自服务器端,您可以在服务器上某个位置的配置中定义它,并根据它触发env(基于正在执行的env线程读取条件检查),然后将该值/变量以某种方式发送给客户端应用程序,可以轻松地解析app.js / whatever.js ...(项目的开始文件)中的信息,并从那里使该应用程序成为全局变量,以供您在API调用中使用。我没有从事C#工作,但方法必须相同。
Node.js在 process 中将此值作为process.env给出。这么简单!
您真的不应该在客户端的任何位置对此进行硬编码。