【问题标题】:PHP Static Asset Versioning PipelinePHP 静态资产版本控制管道
【发布时间】:2017-02-12 01:35:00
【问题描述】:

考虑到以下几点,对静态资产进行版本控制的最佳路线是什么:

  • PHP 编写的应用程序
  • 使用 AWS S3 存储桶-> CloudFront (CDN)
  • 使用 CloudFlare DNS -> CName 到 CloudFront
  • ApplicationAssets分别使用Private GitHub Repo。
  • 使用 Heroku Pipeline 进行部署。

我目前对此的想法是做以下事情,

  1. 在 Cloud9 IDE Workspace 上写入 SASS/Coffee 资产,连接到 GitHub Repo。
  2. 将资源文件 (SASS/Coffee) 的更改提交到 GitHub。
  3. 将资产编译到 /compiled_assets 目录。
  4. 使用文件内容中的 md5 哈希重命名资产,例如:main_9d7f4d73fc50d50a33d4eaad0ba8f0b7.css
  5. 清除 S3/CloudFront 目录 s3://bucket/assets/
  6. 上传新的资产目录。

但从那时起,我对静态资产是否必须通过部署的 Web 应用手动更新,或者这是否可以通过任何流程自动更新感到困惑。

我的问题是

  • 如何在已部署的 Web 应用中维护资产 url。
  • 静态资产版本控制是否需要大量手动输入,或者是否有 PHP 应用程序的标准做法。

谢谢!

【问题讨论】:

    标签: php heroku amazon-s3 amazon-cloudfront cloudflare


    【解决方案1】:

    继续回答我自己的问题。

    我只能回答 PHP,也许其他语言可以使用/破解相同的方法来运行。我使用了 Laravel Elixir (Gulp) 库,它有助于自动创建版本化/哈希资产文件。

    您可以在此处阅读有关 Elixir 的更多信息: https://laravel.com/docs/5.3/elixir

    基础是这样的,您使用 Elixir 编译资产,然后将它们与每个部署集成。通过使用 CloudFlare,我能够自动缓存资产,并在无需任何人工干预的情况下打破缓存,除了部署新的更改。

    虽然这对某些人来说可能是一个简单的答案/问题,但它很棘手,因为并非每个案例都是相同的,这需要对我们的工作流程进行妥协和调整。

    无论如何,我希望这会有所帮助!

    -特拉维斯

    【讨论】:

      猜你喜欢
      • 2013-01-10
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多