我在我的项目中使用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" />
我应该如何解决这个问题?
答案 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")">
希望有所帮助。