T4MVC和虚拟目录

时间:2012-12-04 07:19:34

标签: asp.net asp.net-mvc asp.net-mvc-3 virtual-directory t4mvc

我在我的项目中使用T4MVC。但在运行网站后部署到虚拟目录例如“/ app”后,所有地址都错误。例如,而不是content/site.css /app/content/site.css而浏览器无法找到

例如我写道:

<link href="@Links.Content.bootstrap_min_css" rel="stylesheet" type="text/css" />

渲染到

<link href="/app/Content/bootstrap.min.css" rel="stylesheet" type="text/css" />

而不是

<link href="Content/bootstrap.min.css" rel="stylesheet" type="text/css" />

我应该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

通常,这是正确的行为。如果您的应用程序在虚拟目录/应用程序下运行,则应该能够使用/app/content/site.css请求静态文件。所以你的第一个重点应该是试图理解为什么这不起作用。

如果您真的想要更改此逻辑,请查看T4MVC.tt.hooks.t4中的ProcessVirtualPath。您可以更改路径的处理方式,并根据需要轻松使其相对。更改此文件后,请务必重新运行T4MVC自定义工具。

答案 1 :(得分:0)

如果您在视图中显示用于引用.css的代码,将会很有帮助。我想它是这样的:

<link rel="stylesheet" type="text/css" href="/content/site.css">

您可以使用以下方法(在Razor中)指定Application Root相对URL:

<link rel="stylesheet" type="text/css" href="@Url.Content("~/content/site.css")">

希望有所帮助。