我有一些.js文件,我希望将它们存储在与其视图相同的目录中(它们特定于视图 - 它只是为了使javascript与视图的HTML分开)
但是,将它们添加到/Views/ControllerName/
目录不会起作用,因为当向.js文件的Web服务器发出请求时:
<script type="text/javascript" src="/Views/ControllerName/myscript.js"></script>
它基本上是针对'视图'控制器,它显然不存在。
更新
根据我的阅读,在global.asax.cs RegisterRoutes方法中添加以下IgnoreRoute应该允许访问任何请求的.js文件:
routes.IgnoreRoute("{resource}.js/{*pathInfo}");
然而,我似乎无法让它发挥作用?
答案 0 :(得分:3)
<强>解决强>
在找到并测试了一些我无法开展工作的帖子(最具决定性的帖子here)后,以下解决了这个难题:
在Global.asax
中,将以下代码添加到RegisterRoutes
方法:
routes.IgnoreRoute("{file}.js");
此处有一篇很棒的帖子介绍了这个和其他活动here
答案 1 :(得分:0)
我认为你有两种选择。
您也可以将它们存储在任何非“特殊”文件夹中,但我认为如果您将脚本分开,脚本就是正确的位置。
我通常在脚本文件夹中保留常用脚本(由多个页面使用),没有相应的视图层次结构,以及视图文件中的页面特定脚本,但是在单独的ContentPlaceHolder中。对我来说重要的是不要将JS保存在单独的文件中,而是将与内容分开。使用不同的ContentPlaceHolder可以实现此目的。
答案 2 :(得分:-1)
考虑你的最后一句话 - 这可能就是为什么特定目录(/ Scripts /)被搁置的原因? ;)