在开发和生产环境中获取基础url
Get base url in dev and production environment
我使用MVC3并使用jquery构建一个标签(链接)。问题是我只能让我的链接工作在生产或开发,而不是两者。这是我的网站的网址在生产
http://tvap.mydomain.com这是我的开发url。http://localhost/TVAP
那么,我有一个链接,我正在创建通过jquery如下。
var actionCell = $('#itemlist').find(rowId).find(actionCellId);
$('<a>Edit</a>').attr({ 'id': 'edit-' + response.id, 'href': '/Items/Edit/' + response.id }).appendTo(actionCell);
在生产环境中,这可以工作,并创建一个链接
<a id="edit-17" href="/Items/Edit/17">
但是在开发(本地)中,它不起作用,因为我需要这个。
<a id="edit-17" href="/TVAP/ItemManagement/Edit/17">
从
中得到以下内容 $(location).attr('host') ==> localhost
$(location).attr('host') ==> http://localhost/TVAP/Items/Index
信息太少或太多。我知道我可以检查localhost并根据需要附加ttap,但这似乎是一种hack。其他开发人员可能会使用ASP。. NET VS开发服务器,并获得一个URL将包含localhost,但没有TVAP,因为我得到。即- http://localhost:64301/Items/Index
这是我在_Layout.cshtml:
<head>
<!-- other stuff -->
<script type="text/javascript">
window.myProjectName = {
baseUrl : '@Url.Content("~/")'
};
</script>
<!-- other scripts -->
</head>
那么你总是可以使用像myProjectName.baseUrl+"Controller/Action"
这样的东西从你自己的javascript文件中访问你的资源。这可以帮助您将视图从javascript中分离出来,这是一件非常好的事情。
你不想把标记和javascript混在一起——这是一个很好的折衷方案。
如果你的JS直接在你的视图中(而不是外部JS文件),你可以使用Razor将url刷新到你的Javascript中。
// untested
var actionCell = $('#itemlist').find(rowId).find(actionCellId);
$('<a>Edit</a>').attr({
'id': 'edit-' + response.id,
'href': '@Url.Action("Edit")/' + response.id
}).appendTo(actionCell);
相关文章:
- 如何在reactrouterv2.+中从URL获取参数
- 如何通过给定的url获取youtube音频数据
- 从 url 获取字符串值
- "“用户友好”;vimeo嵌入,从url获取嵌入代码
- 从Javascript中的URL获取参数
- IFrame 从不同域上的父 url 获取参数
- 从URL获取JSON数据并使用innerHTML - 如何显示
- 如何从文档 URL 获取哈希
- 使用 jquery 或 JavaScript 从 URL 获取具有三括号的 JSON 数据
- 使用 JavaScript 从 URL 获取 JSON 响应
- JavaScript:从具有使用 # 符号的路由的 URL 获取查询字符串
- 使用javascript从url获取自动建议
- 从URL获取数据并阻止自动重定向(插件SDK Mozilla)
- 主干:在变量中提供JSON,而不是通过URL获取
- Angularjs-如何从URL获取参数
- JS:根据页面URL获取图片
- JSON获胜't从URL获取完整日历中的事件
- 从url获取文件名
- 使用javascript或PHP从给定的URL获取图像源
- 如何从websocket url获取数据