代码之家  ›  专栏  ›  技术社区  ›  Andreas Grech

在ASP.NET MVC网站中提供本地文件

  •  1
  • Andreas Grech  · 技术社区  · 14 年前

    假设我有一个文件位于 C:\foo\bar.js 我想把这个文件包含在一个ASP.NET MVC网站中,很明显,这个网站托管在同一台机器上。

    这不起作用:

    <script src="C:\foo\bar.js"></script>
    

    这也不是:

    <script src="file:///C:/foo/bar.js"></script>
    

    以上两行也没有意义,因为它们会查看客户机的文件夹,而不是服务器的文件夹。

    因此,如何从ASP.NET MVC控制器提供此文件(在控制器中,我有本地物理文件路径的字符串值,即。 C: \foo\bar.js )去看风景?可能是用HttpHandler做的?

    2 回复  |  直到 14 年前
        1
  •  3
  •   markt    14 年前

    注意:这个解决方案假设js文件不是web应用的一部分。如果是,则应该使用Url.Content或ResolveClientUrl。。

    您应该能够链接到脚本标记中的控制器操作Url:

    <script src="/ControllerName/GetJavascriptFile"></script>
    

    …然后做如下动作:

    public ActionResult GetJavascriptFile() {
       string mp = @"C:\foo\bar.js";
       return File(mp, "text/javascript");
    }
    

    http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.file(VS.90).aspx

        2
  •  1
  •   Tom Kidd    14 年前

    我一直在做的是-假设你有一个叫 Scripts 离开根部(所以,平行于 Controllers , Models ,等等),然后将JavaScript文件存储在其中,可以使用以下命令:

    <script 
     src="<%=Url.Content("~/Scripts/jQuery-1.3.2.js")%>" 
     type="text/javascript">
    </script>
    

    (分成多行以便于阅读)

    假设您的问题是如何链接到 .js 包含文件,但类似的技巧可以应用于任何内容文件(即插件安装程序或其他)

    推荐文章