首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使JS了解应用程序根?

如何使JS了解应用程序根?
EN

Stack Overflow用户
提问于 2015-12-18 17:05:19
回答 2查看 3.5K关注 0票数 3

我有一些在MVC项目中引用/jobs/GetIndex的javascript。当我在本地运行它时,这是很好的,因为我有一个名为ControllerJobsController。当我部署它时,我将应用程序部署到一个'Jobs‘子文件夹中,这意味着这个URL应该变成http://site/jobs/jobs/GetIndex,但是它将变成http://site/jobs/GetIndex,我想是因为javascript不知道’根URL‘是什么,并且使用这个站点作为根。如何让它在这两种环境中工作?

EN

Stack Overflow用户

回答已采纳

发布于 2015-12-18 17:43:50

如果您只关心获取站点的根/基url,那么您可以附加它以获得您所要查找的其他url,您可以使用/作为您的url的第一个字符。

代码语言:javascript
运行
复制
var urlToJobIndex2= "/jobs/GetIndex";

如果您想要的不仅仅是应用根目录(Ex :特定的urls(使用mvc帮助方法(如等)构建),这里是另一种方法

您可以在您的剃刀视图中使用Url.Content助手方法来生成应用程序库的url,将它分配给javascript变量,并在其他js代码中使用它来构建您的其他url。始终确保在使用javascript名称空间时避免全局javascript变量可能出现的问题.

如果要获取特定操作方法的url,可以使用Url.ActionUrl.RouteUrl助手方法。

因此,在您的剃须刀视图(_Layout文件或特定的vie_w)中,您可以这样做。

代码语言:javascript
运行
复制
<script>
    var myApp = myApp || {};  
    myApp.Urls = myApp.Urls || {};
    myApp.Urls.baseUrl = '@Url.Content("~")';
    myApp.Urls.jobIndexUrl= '@Url.Action("GetIndex","jobs")';
</script>
<script src="~/Scripts/PageSpecificExternalJsFile.js"></script>

在您的PageSpecificExternalJsFile.js文件中,您可以像

代码语言:javascript
运行
复制
var urlToJobIndex= myApp.Urls.jobIndexUrl;
// Or With the base url, you may safely add the remaining url route.
var urlToJobIndex2= myApp.Urls.baseUrl+"jobs/GetIndex";

Here是一个大致相同的详细答案,但在特定的页面/视图中使用此方法

角Js

您可能需要在您的角控制器/服务/ directives.The中使用正确的相对url,同样的方法也适用于您的角代码。只需构建js命名空间对象,并使用角value提供程序将数据传递给您的角控制器/服务/指令,如示例代码详细解释的in this post

票数 7
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34360537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档