【发布时间】:2016-07-11 22:50:36
【问题描述】:
我正在研究一个项目结构,其中有多个项目为同一组静态文件提供服务。
在开始时,每个项目都会同时提供静态文件和 API 服务,但稍后我计划将其中的一些分成多个项目。
- ProjectA 将同时提供静态文件和 API
- ProjectB1 将只提供与 ProjectA 中相同的静态文件
- ProjectB2 将只提供 API
在经典的 VS 库中,您可以将文件标记为内容。这些将包含在任何引用该库的项目的构建输出中。
我尝试创建一个包含静态文件的项目 ProjectStatic 并从 ProjectA 和 ProjectB1 中引用它,但 ProjectStatic 中的任何文件都不包含在 ProjectA 和 ProjectB1 的输出中。
这可以使用 project.json 来完成吗?
【问题讨论】:
-
目前不可能在通过构建创建的 nuget 中包含内容文件,但我的理解是,一旦我们到达 RC2,它应该是可能的
-
就目前而言,我已经编写了一些 gulp 任务来将共享的 HTML/JS/CSS 资产从库项目复制到解决方案中的几个不同的 Web 项目 - 如果有点骇人听闻...如果这听起来有帮助,我可以将其写成答案,并详细说明我是如何做到的?它每次都作为预构建任务运行,因此无需手动同步。
-
@MarkHughes 我已经制定了一个计划,以防万一这将是唯一的解决方案,但请随时分享您的。它在我的特定情况下无济于事,但其他人可能会觉得它很有用。
-
我喜欢@Tseng 的答案的样子——如果这样的话,那将比我的 gulp hack 更直接地回答这个问题。
-
这可能并不能完全解决他的问题,因为资源将被编译到程序集中。但是,如果您的项目共享相同的服务器和相同的虚拟文件系统(即在 same docker 容器中运行),您也可以对文件夹进行符号链接。或者,您可以实现自己的
IFileProvider,它将从您选择的公共文件夹中读取文件
标签: asp.net-core