MVC:在同一解决方案中的项目之间共享Javascript文件

时间:2013-01-27 23:37:37

标签: javascript asp.net-mvc

我查看this tutorial创建了一个与同一解决方案中的多个项目一起使用的javascript。基本上,我创建了一个类库,其中我有一个脚本文件夹,我在其中创建一个脚本文件,我想在同一个解决方案中的几个项目中使用它。

在使用commonscript文件的项目的脚本文件夹中,我添加了一个existsng项目,如上面的链接所述。我将文件添加为链接而不是文件的副本。但是,我的观点无法读取此javascript文件。

我甚至使用javascript将此命令添加到项目的预构建事件中,因此我可以在构建之前将文件从classlibrary复制到我的项目,但是也没有用。

copy $(SolutionDir)ClassLibraryName\Scripts\CommonScript.js* $(ProjectDir)Scripts\CommonScript.js

并将脚本添加到我的视图

<script src="@Url.Content("~/Scripts/CommonScript.js")" type="text/javascript"></script>

如何创建javascript文件并在同一解决方案中的多个项目中使用它

3 个答案:

答案 0 :(得分:1)

您也可以考虑重新构建应用程序以使用区域,而不是使用两个完全独立的项目。我最成功地使用多个项目仅用于应用程序的完全独立部分(即一个项目中的接口,另一个项目中的模型,第三个中的类定义,区域,控制器和第四个中的视图)。如果您使用区域,那么您的视图可以从同一组资源(例如内容和脚本文件夹)中提取。

答案 1 :(得分:0)

您是否考虑过托管文件?这通常是在行业中完成的,也是我在自己的项目中习惯的习惯。使用Apache或IIS进行设置非常简单。

答案 2 :(得分:0)

另一种选择是拥有一个&#34;媒体服务器&#34;或者&#34;静态资产服务器&#34;与您的网站分开。这可能只是IIS中的另一个虚拟目录,可以包含任何静态资产,如JavaScript,CSS或图像。然后,您需要从MVC项目中正确引用这些资产:

<script type="text/javascript" src="/assets/foo.js"></script>

如果静态资产虚拟目录位于同一服务器上,您仍然可以使用相对URL。我可能会建议IIS的这个设置:

  • 默认网站
    • assets /(虚拟目录)
    • webapp1 /(应用程序)
    • webapp2 /(应用程序)

自&#34;资产&#34;虚拟目录只是一个包含文件的文件夹,你甚至不需要为它创建一个Visual Studio项目。使用像Sublime Text这样的文本编辑器就足够了,因为它可以打开一个文件夹并像项目一样呈现它。