javascript - VS2013 : Publish minified bundle created on files outside of the project

标签 javascript visual-studio-2013 asp.net-4.5

我将 Visual Studio 2013 和 .NET 4.5 用于 MVC 项目。

我通过 Pluralsight 上的几个视频学习使用 AngularJS,其中一个演示了使用 Grunt 清理输出目录,然后使用 ngmin 对 Javascript 文件进行最小安全的过程。

我的流程是使用 gruntfile.js 来清理并针对解决方案中的 javascript 文件运行 ngmin,然后将它们放入名为 app_built 的目录中。这是通过项目预构建中的批处理文件执行的,然后我通过 ScriptBundle 包含它,其中 IncludeDirectory 指向 app_built 目录。我的目的是在所有文件通过 Grunt 进行最小安全保护后,使用 .NET 4.5 的捆绑功能来完成 Javascript 的其余缩小和串联操作。

我使用以下命令指定最小安全文件的路径:

bundles.Add(new ScriptBundle("~/bundles/minSafed")
  .IncludeDirectory("~/app_built/", "*.js", true));

如果我在本地计算机上运行它,它可以正常运行。正如我所期望的那样,Javascript 被缩小并捆绑在一起,并且生成的 Web 应用程序也运行良好。

如果我将网站发布到远程服务器,则会收到“目录不存在。参数名称:directoryVirtualPath”的服务器错误。我认为此错误表明它无法找到填充有我的许多 *.js 文件的目录。我还假设这是因为它们没有发布,因为它们不是解决方案的一部分,即使它们所在的文件夹解决方案的一部分(它在解决方案资源管理器中只是空的) Visual Studio)。

如果我的假设是正确的,我该怎么做才能将这些文件添加到我的解决方案中,以便每次都能轻松地将它们与我的 Web 应用程序的其余部分一起发布?

如果我的假设不正确,我能做些什么来解决这个问题?

谢谢!

最佳答案

我从来没有找到解决这个问题的好方法。我在http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx找到了信息这似乎相关,但我无法使其工作。

相反,因为我知道输出文件的名称,所以我只是在我的项目中创建了这样一个空文件,并在需要的地方引用它。然后,我让预构建任务将该文件的内容替换为外部缩小版本,并且根据需要将其与项目打包在一起,因此它运行得很好。

关于javascript - VS2013 : Publish minified bundle created on files outside of the project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21840001/

相关文章:

javascript - 使用双缓冲改进 Html5 Canvas ?

razor - 如何禁用或修改 MVC Razor 文件中的自动格式化?

.net - "EnsureBindingRedirects"任务意外失败

javascript - 棘轮弹出窗口关闭的 JS 回调

javascript - Ember.js 计算出 : Shortest way to return single object from array

asp.net - Visual Studio 2013 不会显示设计 View

c++ - Visual Studio 201x 项目设置

c# - 从 id 属性获取 xml 节点值 C#

asp.net-mvc - MVC4是否已烘焙到.NET 4.5中?

javascript - React Redux 不调度 API 调用来删除玩家