MVC解析.JS文件中的URL

时间:2011-10-25 16:43:38

标签: asp.net-mvc asp.net-mvc-3 iis

所以我在seperare js文件中有一些Javascript(jquerySliderMenu.js)

解决图像的网址我这样做: var imgUrl = $ Url.resolve(“〜/ Assets / Javascript / Img”);

在dev中找到工作,(iis 6)

但是在prod(iis 7.5)上,它解析为

https://XXXX.org/Home.mvc.aspx/~/Assets/Javascript/Img/right.gif

而不是

https://XXXX.org/Assets/Javascript/Img/right.gif

导致错误。

我记得IT人员必须添加.MVC。但是我无法记住他们为什么或如何做到这一点。

有没有更好的方法来解决与将.mvc.aspx添加到所有内容的设置相关的问题? (请问,那个设置是什么?)

Thansk,

Eric-

1 个答案:

答案 0 :(得分:9)

您不应该尝试解析ytour javascript文件中的任何网址。您应该使用url帮助程序在HTML中生成它们。然后Javascript会不引人注意地阅读并使用它们。

您可以使用HTML5 data- *属性,就像不引人注目的AJAX和客户端验证一样。例如,假设您在DOM中有以下元素

<div id="foo" data-url="@Url.Content("~/Assets/Javascript/Img")">some contents</div>

然后在你的javascript:

var imgUrl = $('#foo').data('url');

或者如果你是不引人注意地AJAX化一个锚或一个表单,你可以直接在相应的DOM元素上获取hrefaction属性,这些属性当然是用Url生成的/ Html助手,从而确保正确的网址尊重路线。