簡體   English   中英

MVC:在同一解決方案中的項目之間共享Javascript文件

[英]MVC: Share Javascript file between projects in the same solution

我查看了本教程 ,創建了一個與同一解決方案中的多個項目一起使用的javascript。 基本上,我創建了一個類庫,其中我有一個腳本文件夾,我在其中創建一個腳本文件,我想在同一個解決方案中的幾個項目中使用它。

在使用commonscript文件的項目的腳本文件夾中,我添加了一個existsng項目,如上面的鏈接所述。 我將文件添加為鏈接而不是文件的副本。 但是,我的視圖無法讀取此javascript文件。

我甚至使用javascript將此命令添加到項目的預構建事件中,因此我可以在構建之前將文件從類庫復制到我的項目但是也沒有工作。

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

並將腳本添加到我的視圖中

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

如何創建一個javascript文件並在同一解決方案中的多個項目中使用它

您也可以考慮重構您的應用程序以使用區域而不是使用兩個完全獨立的項目。 我最成功地將多個項目用於應用程序的完全獨立部分(即一個項目中的接口,另一個項目中的模型,第三個中的類定義,區域,控制器和第四個中的視圖)。 如果您使用區域,那么您的視圖可以從同一組資源(例如內容和腳本文件夾)中獲取。

你有沒有想過托管你的文件? 這通常是在行業中完成的,也是我在自己的項目中習慣的習慣。 使用Apache或IIS設置非常簡單。

另一種方法是使用“媒體服務器”或“靜態資產服務器”,它與您的網站是分開的。 這可能只是IIS中的另一個虛擬目錄,可以包含任何靜態資產,如JavaScript,CSS或圖像。 然后,您需要從MVC項目中正確引用這些資產:

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

如果靜態資產虛擬目錄位於同一服務器上,您仍可以使用相對URL。 我可能會建議IIS的這個設置:

  • 默認網站
    • 資產/(虛擬目錄)
    • webapp1 /(應用程序)
    • webapp2 /(應用程序)

由於“assets”虛擬目錄只是一個包含文件的文件夾,因此您甚至不需要為它創建Visual Studio項目。 使用像Sublime Text這樣的文本編輯器就足夠了,因為它可以打開一個文件夾並像項目一樣呈現它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM