【发布时间】:2017-02-13 11:54:15
【问题描述】:
我想使用具有以下文件夹结构的 C#/MVC5 创建一个 Web 应用程序,其中我的客户端源与服务器的源是分开的
- 控制器
- HomeController.cs
- FooApiController.cs
- 客户端
- 资产(文件夹)
- 图像(文件夹)
- logo.png
- 字体.ttf
- 图像(文件夹)
- 组件(文件夹)
- foo(文件夹)
- fooService.js
- foo(文件夹)
- index.cshtml
- web.config(编辑)
- 资产(文件夹)
我希望能够在客户端文件夹中调用我的不同文件,而不需要文件夹“客户端”,例如:
<img src="assets/images/logo.png" />
而不是
<img src="client/assets/images/logo.png" />
此外,我想将所有其他文件路由到 client/index.cshtml。 I though about adding a route like this:
routes.MapRoute(
name: "Default",
url: "{*anything}",
defaults: new { controller = "Home", action = "Index" }
);
HomeController.cs
public class HomeController : Controller
{
public ActionResult Index()
{
return View("~/client/index.cshtml");
}
}
并为我的客户端文件夹中的每个文件夹添加this post 中指定的规则。例如:
<rule name="client" stopProcessing="true">
<match url="^assets/?(.*)$" />
<action type="Rewrite" url="/client/assets/{R:1}" />
</rule>
问题是每当我试图获取我的图像时
http://localhost:49312/client/assets/images/logo.png
或
// returns to http://localhost:49312/client/assets/images/logo.png
http://localhost:49312/assets/images/logo.png
我收到“找不到资源”错误
正确的方法是什么?
【问题讨论】:
标签: c# asp.net-mvc-5