【问题标题】:MVC3 Relative URL Paths - JavascriptMVC3 相对 URL 路径 - Javascript
【发布时间】:2011-08-18 21:19:33
【问题描述】:

我有一个相对路径的问题,当网络应用程序在域的子目录之外运行时,路径不正确。例如http://www.example.com/webapp/

如果我在页面上使用@Url.Content("~/path/to/action") 就可以了。我什至可以在 javascript 脚本中嵌入@Url.Content("")。我想清理我想将 javascript 放入 js 文件并引用它的页面。现在 @Url.Content 在 javascript 文件中被调用,它似乎不起作用(可能出于明显的原因)。我该如何解决这个问题?

我查看了<base />,但这似乎不起作用。

【问题讨论】:

  • 把这个 javascript 放在母版页中怎么样?

标签: javascript asp.net-mvc-3 url path relative-path


【解决方案1】:

现在您将所有内容都移到了单独的 js 文件中,该文件作为静态内容提供,并且不会解析 Razor 语法。

如果您需要在您的 js 中可能会更改的相对路径,那么您应该在每个页面中包含一个设置路径变量的脚本,并在此脚本中使用 @Url.Content(...),例如,

<script type="text/javascript">
    pathToAction = "@Url.Content(...)";
</script>

然后,在你的 js 文件中声明 pathToAction 变量,并根据需要使用它。

【讨论】:

  • 聪明,我没有想到这种方法。谢谢。我所做的只是使用一些路径,例如 scriptfolder = '@Url.Content("~/Scripts/")', imagefolder = '@Url.Content("~/Images/")' 然后将它们附加到当前网址已经存在。
  • 我刚刚想到,对于 CSS 样式在 css 文件中的情况如何?如果您有文件夹的图像或背景,但需要是相对路径。
  • CSS 中的路径是相对于 CSS 文件的,而不是相对于加载的页面。所以可以做background-image: url('../images/image1.png');之类的路径
猜你喜欢
  • 2012-05-31
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 2014-06-03
  • 1970-01-01
  • 2011-04-29
  • 2017-04-19
相关资源
最近更新 更多