【问题标题】:How to maintain one copy of things like JS files and views如何维护 JS 文件和视图等内容的一份副本
【发布时间】:2020-09-18 08:13:04
【问题描述】:

我的 ASP.Net Core MVC 项目由 3 个网站项目以及相关的单元测试项目组成,所有这些项目都收集在一个解决方案中。每个网站项目都依赖于常见的东西,例如 JavaScript 库(在 wwwroot/js/... 下)和视图(在 views/... 下)。是否有一些功能可以让我打包这些文件(据我所知,没有一个可以存在于 NetStandard 库项目中)并将它们“安装”在我所有的网站项目中,所以我只需要在一个一个地方?

Razor 类库 (RCL) 几乎可以完成我想做的事情,但我希望能够从所有三个网站项目的视图中引用我的 JavaScript 库。我还希望捆绑器/最小化器能够找到我常用的 JavaScript 和 CSS 文件。据我所知,RCL 只允许 RCL 中的 Razor 页面访问 RCL 中的静态内容(比如我的 JavaScript 和 CSS 文件)。

编辑:

经过深思熟虑,我得出的结论是,我所要求的根本无法“开箱即用”。为了正常工作,调试器和捆绑器/最小化器需要在项目的目录树中找到 js 和 css 文件。我要的是一种方法来拥有像包含这些“共享”文件的“参考项目”之类的东西。我认为是时候采用“科学项目”方法了:我将创建一个包含共享文件的参考项目,并运行一些更新文件的代码(在构建时?通过 MSBuild?通过单元测试代码?)如果它们不匹配,则在参考项目中的项目中。

【问题讨论】:

  • 如果足够普遍,根据用例,专用 CDN 可能是合适的。

标签: visual-studio asp.net-core asp.net-core-mvc


【解决方案1】:

FWIW,这就是我最终要做的事情:

在我的 3 个网站项目中,我在几个地方都有公共文件:

  • 观看次数/分享次数
  • wwwroot/js/MyJsLibrary
  • wwwroot/css/MyCssLibrary

我创建了一个“参考”项目,其中包含这些文件夹中公共文件的副本。然后我创建了一个单元测试来简单地验证“参考”项目中的文件是否存在并且与 3 个网站中的每个网站中的文件相同。

没有自动魔法来保持文件夹同步。如果有人更改了其中一个公用文件,那么单元测试将失败,直到有人将更新的文件复制到网站项目和“参考”项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-22
    • 2012-02-26
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多