8

I looked at this tutorial for creating a javascript that is used withing several projects in the same solution. Basically, I created a class Library where I have a script folder in which I create a script file which I want to use in several projects within the same solution.

In the script folder of the projects which use the commonscript file, I added an existng item as described in the link above. I added the file as a link and not a copy of the file. However, my view s not able to read this javascript file.

I even add this command to the pre-build event for project using the javascript so I could copy the file from the classlibrary to my project during before building but did did not work either.

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

and added the script to my view

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

How can I create a javascript file and use it in several projects in the same solution

4

3 回答 3

1

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

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

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

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

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

于 2016-03-10T14:36:33.407 回答
1

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

于 2016-03-10T14:29:35.890 回答
0

你有没有想过托管你的文件?这是工业界通常会做的事情,也是我在自己的项目中养成的习惯。使用 Apache 或 IIS 很容易设置。

于 2013-02-03T17:25:34.313 回答