在ASP.NET中提供html,CSS和JS文件,这些文件不在MVC应用程序中

时间:2017-03-22 09:07:07

标签: asp.net-mvc

我有以下文件夹结构,它位于D分区上,并且它位于MVC应用程序之外:

D:\item\html_file.html
D:\item\content\style.css
D:\item\js\site.js

html_file.html引用了js和css,如:

<link href="content/style.css" ... />

<script src='js/site.js'>

在MVC行动中我有类似的东西:

  [HttpGet]
  public ActionResult GetItem(string id)
  {
     if (string.IsNullOrWhiteSpace(id)) {
        throw new HttpException((int) HttpStatusCode.NotFound, "The id doesn't exist");
     }

     // get/verify user's rights and permissions

     try {
        string file = @"D:\item\html_file.html";
        return File(file, MimeMapping.GetMimeMapping(file));
     } catch (Exception e) {
        // return 404
     }
  }

但是没有加载CSS和JS文件(它给了我404,试图访问www.blabla.com/myCtrl/getitem/content/style.css)。

我的问题:如何加载MVC应用程序之外的那些css和js?

由于

1 个答案:

答案 0 :(得分:0)

您认为您服务器的当前位置位于文件夹中:

<link href="content/style.css" ... />

<script src='js/site.js'>

但事实并非如此。如果向路径添加斜杠

<link href="/content/style.css" ... />

<script src='/js/site.js'>

然后将在应用程序的根文件夹中搜索它们。如果项目文件夹恰好是那个,那么这将解决您的问题。如果没有,那么你需要为它添加一个前缀,包含从根开始的路径,只记得用斜杠开始路径。