在我的 razor View 中,我想将所有 jQuery 放入一个单独的 JS 文件中,然后使用 @Scripts.Render
在 View 上引用该文件。
在我看来,我有一个 jQuery 部分,如下所示:
var settings = {};
settings.baseUri = '@Request.ApplicationPath';
var submissionUrl = "";
if (settings.baseUri === "/ProjectNameOnServer") {
submissionUrl = settings.baseUri + "/api/apiControllerName/apiControllerMethodName/";
} else {
submissionUrl = settings.baseUri + "api/apiControllerName/apiControllerMethodName/";
}
这部分代码允许我在本地主机和服务器上使用 api 测试提交表单,而无需更改 url。
如果我在本地主机上测试,则 @Request.ApplicationPath ==/
,但如果我在服务器上测试,则 @Request.ApplicationPath ==/ProjectNameOnServer
.
我想知道如何在不使用 Razor 而仅使用 jQuery 的情况下获得这些相同的值。
我已经尝试过:
var settings = {};
settings.baseUri = window.location.protocol + "//" + window.location.host;
但是settings.baseUri == http://localhost:xxxxx
。我只需要 @Request.ApplicationPath
给我的东西。
请您参考如下方法:
使用location.host
有条件地创建相对路径
settings.baseUri = location.host.includes('localhost') ? '/' : '/ProjectNameOnServer';