PHP静态资产版本控制管道

时间:2016-10-04 01:33:59

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

考虑到以下几点,静态资产的版本化建议是什么?

  • 应用程序写在 PHP
  • 使用 AWS S3存储桶 - > CloudFront(CDN)
  • 使用 CloudFlare DNS - > CName到CloudFront
  • 分别对应用资产使用私人GitHub代表 o。
  • 使用 Heroku管道进行部署

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

  1. 在连接到GitHub Repo的Cloud9 IDE工作区上写入SASS / Coffee资产。
  2. 将资源文件的更改( SASS / Coffee)提交给GitHub。
  3. 将资产编译为 / compiled_assets 目录。
  4. 使用文件内容中的md5哈希重命名资产,例如:main_9d7f4d73fc50d50a33d4eaad0ba8f0b7.css
  5. 清除S3 / CloudFront目录 s3:// bucket / assets /
  6. 上传新的资产目录。
  7. 但从那时起,我对是否必须通过部署的Web App手动更新静态资产感到困惑,或者是否可以通过任何流程自动更新。

    我的问题是

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

    谢谢!

1 个答案:

答案 0 :(得分:1)

继续前进并回答我自己的问题。

我只能回答PHP,也许其他语言可以使用/ hack相同的方法来运行。我已经使用 Laravel Elixir (Gulp)库,它帮助自动创建版本化/散列资产文件。

您可以在此处详细了解 Elixir https://laravel.com/docs/5.3/elixir

基础是这样,您使用 Elixir 编译资产,并将它们与每个部署集成。通过使用CloudFlare,我可以自动缓存资产,并在没有任何人工干预的情况下中断缓存,而不是部署新的更改。

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

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

-Travis