Asp.net T4MVC与虚拟目录

Asp.net T4MVC与虚拟目录,asp.net,asp.net-mvc,asp.net-mvc-3,virtual-directory,t4mvc,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Virtual Directory,T4mvc,我正在我的项目中使用T4MVC。但是在部署到虚拟目录后,当我运行站点时,所有地址都错误。例如,它不是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" re

我正在我的项目中使用
T4MVC
。但是在部署到虚拟目录后,当我运行站点时,所有地址都错误。例如,它不是
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" />


如何解决此问题?

如果您在视图中显示用于引用.css的代码,将非常有用。我想是这样的:

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

可以使用以下方法(在Razor中)指定应用程序根相对url:



希望对您有所帮助。

如果您在视图中显示用于引用.css的代码,这将非常有用。我想是这样的:

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

可以使用以下方法(在Razor中)指定应用程序根相对url:



希望有帮助。

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


如果确实要更改此逻辑,请查看T4MVC.tt.hooks.t4中的
ProcessVirtualPath
。您可以更改处理路径的方式,如果愿意,可以轻松地使其成为相对路径。更改此文件后,请确保重新运行T4MVC自定义工具。

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


如果确实要更改此逻辑,请查看T4MVC.tt.hooks.t4中的
ProcessVirtualPath
。您可以更改处理路径的方式,如果愿意,可以轻松地使其成为相对路径。更改此文件后,请确保重新运行T4MVC自定义工具。

如我所述,我正在使用强类型路径。我不会硬编码地址。你能发布你使用的链接标签吗?它不应该是@Links.Content.site\u css吗?不,我是说“\u css”,而不是我提到的“\u cs”,我使用的是强类型路径。我不会硬编码地址。你能发布你使用的链接标签吗?不应该是@Links.Content.site\u css吗?不,我的意思是“\u css”,而不是“\u cs”,你能发布更多细节吗?具体来说:你到底在写什么代码?查看源代码时渲染的是什么?你到底在期待什么?@davidebo:我更新了问题,你能发布更多细节吗?具体来说:你到底在写什么代码?查看源代码时渲染的是什么?你到底在期待什么?@davidebo:我更新了这个问题:是否可以在不改变生成链接的标准行为的情况下获取文件的虚拟路径?在将链接传递到Bundle配置中的特定内容时,它会很有用。是否可以在不更改生成链接的标准行为的情况下获取文件的虚拟路径?它将有助于在Bundle配置中传递指向特定内容的链接。