问题 对于在调试中返回404的JavaScript文件,“添加为链接”


使用Visual Studio 2010 ASP.net Web应用程序,我有几个共享一些JavaScript / css文件的项目。他们共享这些文件的最合理方式是将文件放在一个文件夹中,每个项目都包含“添加为链接”选项。但是,如果我在使用Visual Studio开发服务器进行调试或使用本地IIS Web服务器进行调试时以这种方式添加文件,则对这些文件的所有请求都会返回404 Not Found错误。如果我发布该站点,那么文件将被复制,但这显然无助于调试。

有没有我缺少的东西,或者这是VS的失败?


9698
2017-11-12 16:44


起源



答案:


为了解决这个问题前段时间我创造了一个'MSBuild.WebApplication.CopyContentLinkedFiles'nuget包。此软件包添加了MsBuild目标,该目标在构建期间复制作为项目文件夹链接添加的所有内容文件。

注意:如果您使用源代码管理,那么最好将复制的文件(从Web Application文件夹)添加到忽略列表。


14
2017-09-14 13:14



谢谢!这个工作正常! - cgatian


答案:


为了解决这个问题前段时间我创造了一个'MSBuild.WebApplication.CopyContentLinkedFiles'nuget包。此软件包添加了MsBuild目标,该目标在构建期间复制作为项目文件夹链接添加的所有内容文件。

注意:如果您使用源代码管理,那么最好将复制的文件(从Web Application文件夹)添加到忽略列表。


14
2017-09-14 13:14



谢谢!这个工作正常! - cgatian


我不会真的称之为失败,因为你首先要求这种行为: 链接的项目 在Visual Studio项目中是实际的 链接 到外部文件。这些文件可以驻留在磁盘上的任何位置,不会复制到项目文件夹中。

您可能希望在本地复制这些文件 预建活动。这样,文件将保持同步,并且在第一次编译之前不会复制它们。


4
2017-11-12 17:17



好吧,因为我将它作为链接添加到项目中,然后当我请求链接时,我应该重定向到源而不是VS在调试时返回404。这就是为什么VS无法正确处理链接文档的原因。我测试了手动将文件复制到文件夹,然后它将返回文档,但这不是我应该做的事情。它首先打破了链接文档的目的。 - Matt
@Matt,还没有执行这种重定向的功能。我想你可以称之为缺点:) - Frédéric Hamidi
真是太遗憾了。我有几个css和js文件在项目之间共享,没有这个功能在所有方面工作意味着重复的代码和额外的步骤。好吧。 - Matt


问题似乎是网站直接从源文件夹运行,而不是从bin文件夹运行。这意味着文件将丢失,无论是否将其复制到输出文件夹。

从本地或远程Web服务器运行可能不会有这个问题,虽然我没有这样做,如果我不需要,我宁愿不将IIS添加到我的本地机器。

添加预构建复制命令确实有效。请注意,当前目录将是bin文件夹。 (您可以使用 cd 如果要查看它,将当前目录回显到构建窗口):

如果文件在另一个解决方案中,您的命令将类似于(三个 ..s:从每个bin,project和solution文件夹中取出一个):

copy ..\..\..\OtherSolution\OtherProject\Scripts\MyJSFile.js ..\Scripts\

如果它在同一个解决方案中,但是一个不同的项目:

copy ..\..\OtherProject\Scripts\MyJSFile.js ..\Scripts

一个小问题是,即使您没有将文件添加到项目中,该文件的链接也会与文件的新副本发生冲突。只要你首先建立链接,它似乎工作。如果先复制文件,则必须手动删除该副本,然后才能添加链接之前刷新解决方案资源管理器。


0
2018-03-09 19:43





在解决方案资源管理器中选择链接,然后查看属性窗口并将“复制到输出目录”设置为“始终复制”默认情况下,链接的项目设置为“不复制”。

顺便说一句,您可以在使用时直接从Solution Explorer直接复制许多文件作为链接 VSCommands 2010 延期。


-2
2017-11-18 13:14



问题是“输出目录”是bin文件夹。当它们需要位于Styles或Scripts文件夹中以使http请求起作用时,将它们复制到bin文件夹没有帮助。 - Matt


有关项目文件的简单添加,请参阅此博客文章。 http://mattperdeck.com/post/Copying-linked-content-files-at-each-build-using-MSBuild.aspx


-2
2017-07-31 19:54