1

我在一个由我(开发人员)和我的同事(设计师)组成的小型环境中工作。

我们有很好的技能交集,所以大多数时候我们合作得很好,目前我们将所有 javascript 文件、css 文件和图像托管在一个 s3 存储桶中,这样他就可以调整我们的前端内容,而无需我将更改部署到服务器。

我们工作流程中唯一让我们失望的部分是每当他需要调整任何 HTML 设计时。对于那部分,他依赖我将这些更改部署到生产服务器。

我们使用 ASP MVC 和 Razor 模板。

如果可以将我们的 cshtml razor 模板托管在 s3 存储桶而不是我们的生产服务器上,是否有人成功地解决了这个问题?

编辑:我们不想在 s3 上托管我们所有的视图模板,只是有一些定期更改。

4

3 回答 3

1

您可以尝试实现自定义 Razor 引擎。基本引擎具有可覆盖的 CreatePartialView、CreateView ETC 方法,您可以覆盖并返回IView从 S3 获取的内容的实例。

注意:你不应该在生产服务器上使用它,因为它可能会影响性能。此外,请确保您将 S3 存储桶设为私有,否则任何危险的人都可以访问您的服务器端剃须刀代码。

于 2013-08-12T06:44:26.000 回答
0

您可以确保将它们托管在 S3 中,就像您已经做的那样。此外,您绝对可以编写代码来按需下载和编译这些模板,但这将是一项艰巨的任务。您将要实现一个VirtualPathProvider

听起来您应该考虑使用版本控制系统。除了解决您上面描述的问题外,版本控制系统还可以确保

  • 你可以追踪谁在什么时候改变了什么
  • 您有完整的历史记录并且可以撤消更改
  • 如果您和您的伴侣对文件进行有冲突的更改,您会收到警报
  • 你总是知道什么是“最新版本”

许多系统甚至允许您直接从版本控制系统部署代码。

在线有数十种版本控制系统服务,其中大多数免费为您规模的团队提供服务。看看微软托管的TFSBitBucketGitHub

如果您从未使用过版本控制系统,您将需要学习一些新概念和术语。但是,这不会花很长时间,而且非常值得。

于 2013-08-12T06:31:22.690 回答
0

通常,视图文件的大小比assets图像、JavaScript 和 CSS 文件小。您可以将视图文件保存在服务器上,并将资产保存在 Amazon S3 上。

这将减少来自服务器的负载。此外,有了这个,您可能只使用公共存储桶做得很好,因为大多数资产可能可以公开访问(无需身份验证)。

这不是问题中所问问题的确切解决方案。这只是一个替代建议,应该相应地对待。

于 2013-08-12T06:53:37.683 回答