Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ASP.NET MVC网站中提供本地文件_Javascript_Asp.net Mvc_Httphandler - Fatal编程技术网

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

Javascript 在ASP.NET MVC网站中提供本地文件,javascript,asp.net-mvc,httphandler,Javascript,Asp.net Mvc,Httphandler,假设我有一个位于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的文件,我想将该文件包含在一个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的问题?

注意:此解决方案假设js文件不是web应用程序的一部分。如果是,您可能应该使用Url.Content或ResolveClientUrl

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

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

注意:此解决方案假设js文件不是web应用程序的一部分。如果是,您可能应该使用Url.Content或ResolveClientUrl

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

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

我一直在这样做-假设您有一个名为Scripts的文件夹,它位于根目录下,与控制器、模型等并行。您将JavaScript文件存储在其中,您可以使用以下方法:

<script 
 src="<%=Url.Content("~/Scripts/jQuery-1.3.2.js")%>" 
 type="text/javascript">
</script>
分为多行以便于阅读


这是假设您的问题是如何链接到.js include文件的位置,但类似的技巧也可以应用于任何内容文件,例如插件安装程序或诸如此类的东西,就像我一直在做的那样-假设您在根目录下有一个名为Scripts的文件夹,与控制器、模型平行,等等,然后将JavaScript文件存储在其中,您可以使用:

<script 
 src="<%=Url.Content("~/Scripts/jQuery-1.3.2.js")%>" 
 type="text/javascript">
</script>
分为多行以便于阅读


这是假设您的问题是如何链接到.js include文件的位置,但类似的技巧也可以应用于任何内容文件,例如插件安装程序或诸如此类的东西

为什么要绕道控制器?可能我误读了。。但听起来脚本文件不是web应用程序的一部分。否则包含脚本应该是微不足道的。这也是我得到的印象,因此+1。看起来OP是在问如何包含一个web服务器没有实际公开的文件;我要提供的文件不是web应用程序的一部分,因此不会通过web服务器公开。@Andreas:为什么要包含一个不属于web应用程序的JavaScript文件?为什么要绕道控制器?也许我看错了。。但听起来脚本文件不是web应用程序的一部分。否则包含脚本应该是微不足道的。这也是我得到的印象,因此+1。看起来OP是在问如何包含一个web服务器没有实际公开的文件;我要提供的文件不是web应用程序的一部分,因此不会通过web服务器公开。@Andreas:为什么要包含一个不属于web应用程序的JavaScript文件?问题是我要提供服务的文件不是包含该站点的虚拟目录的一部分。问题是我要提供服务的文件不是虚拟目录的一部分包含站点。仅供参考:执行此操作时可能会遇到浏览器安全问题。但是,如果你提供的网页依赖于用户磁盘上某个特定位置的文件……不,这些文件将不在用户磁盘上;我将提供的文件将位于承载站点的计算机上,但不在虚拟目录中,因此它们不会通过web服务器公开。仅供参考:执行此操作时,您可能会遇到浏览器安全问题。但是,如果你提供的网页依赖于用户磁盘上某个特定位置的文件……不,这些文件将不在用户磁盘上;我将提供的文件将在托管站点的计算机上,但不在虚拟目录中,因此它们不会通过web服务器公开。