使用场景
最近用 .net core mvc 写了一个工具类的项目,作为我们项目的后台管理网站使用。第一次被老大拿去部署的时候被告知不可用,同样的代码在我电脑和我的iis上都可以使用的啊。
后来才知道,原来老大是把这个项目作为某一个项目的应用程序发布上去了,在使用过程中会有一个目录问题。
解决方案一
一开始为了能让项目快速使用,我把虚拟目录写在了我要请求的Ajax路径中。
解决方案二
可以在模板页定义一个环境变量或者全局变量,记录这个虚拟目录的值,然后访问的时候以变量的方式拼接到Ajax的路径上。
解决方案三
上面的两种方式都是把虚拟目录写死在网页里说js里,这样的操作很不好。
忽然想到模板页引用的js和css路径也都是相对路径为什么没有问题呢?
试了一下,得到的结果是,在Ajax的路径前面加 ../ (这样适用于只有一层虚拟目录的情况),如果有a标签的跳转就在路径前面加 ~/。
这样一来,网站以应用程序方式发布就没有问题了,亲测好用的。