c# - ASP.NET MVC 5 在项目之间共享包
问题描述
我的解决方案下有 3 个项目:
- 帐户
- 管理
- 领域
帐户和管理是 MVC 5 应用程序。帐户位于 IIS 的根目录 ( http://localhost/ ) 中,管理位于该根目录 ( http://localhost/Management ) 中。Domain 是一个类库,因此我可以在它们之间共享数据库上下文。
我正在使用捆绑包来提供我的 JS 和 CSS 文件。下面是 Account 应用程序中 App_Start/BundleConfig.cs 的片段。
public static void RegisterBundles(BundleCollection bundles)
{
bool developerMode = Environment.MachineName != "LIVE_MACHINE";
string libScriptsDirectory = "~/Public/scripts/lib/";
string libStylesDirectory = "~/Public/styles/lib/";
string[] libScripts = new string[]
{
libScriptsDirectory + (developerMode == true ? "vue-2.5.17.dev.js" : "vue-2.5.17.min.js"),
libScriptsDirectory + "vuetify-1.3.1.js",
libScriptsDirectory + "vue-resource-1.5.1.js",
libScriptsDirectory + "vue-snotify-3.2.1.js",
libScriptsDirectory + "moment-2.22.2.js"
};
string[] libStyles = new string[]
{
libStylesDirectory + "material-41.css",
libStylesDirectory + "font-awesome-4.7.0.css",
libStylesDirectory + "vuetify-1.3.1.css",
libStylesDirectory + "vue-snotify-3.2.1.css"
};
bundles.Add(new ScriptBundle("~/bundles/lib.min.js").Include(libScripts));
bundles.Add(new StyleBundle("~/bundles/lib.min.css").Include(libStyles));
BundleTable.EnableOptimizations = !developerMode;
}
这在 Account 应用程序中工作得很好@Scripts.Render("~/bundles/lib.min.js")
,我什至可以@Scripts.Render("/bundles/lib.min.js")
在 Management 应用程序中完成。唯一的问题是我想BundleTable.EnableOptimizations
在开发环境中使用。这在 Account 应用程序下是可能的,因为当它设置为 false 时,我的所有 JS 和 CSS 文件都未捆绑,但管理应用程序不是这种情况,因为我没有引用虚拟路径,所以它总是检索捆绑的版本。
我不想让两组相同的代码做同样的事情。有什么方法可以让我的静态 JS 和 CSS 文件位于一个位置,并利用两个应用程序中的捆绑来提供捆绑和非捆绑文件?据我了解,捆绑包不允许使用绝对路径,所以我知道这不是一个选择。
解决方案
我通过添加一个虚拟目录来解决这个问题,该目录指向我想要使用的 JS 和 CSS 文件的绝对路径。我将此虚拟目录添加到每个应用程序中,因此 /Lib/... 有效, /Management/Lib/... 有效。
推荐阅读
- java - 无法在 ubuntu 18.04 中使用 apache commons vfs for vsftpd 重命名文件
- node.js - openid-client wso2 401 未经授权
- java - 尝试使用 yovenny/VideoCompress 编写可以压缩小尺寸视频的代码
- graphql - 尝试使用 GraphQL 从 Monday.com 获取特定的行值
- javascript - 具有相同类且没有唯一 id 的多个按钮,如何仅使用 vanilla JS 识别单击了哪个按钮
- python-3.x - Python 3 一次可以写入的最大数据量是多少?
- c++ - 带有类的 switch 语句
- javascript - jQuery追加最后一项
- c++ - 如何移动到智能指针数组中的下一个指针
- google-apps-script - 查询 Google Admin User 目录比较参数