max*_*max 2 amazon-s3 node.js express amazon-cloudfront gruntjs
使用Grunt,NodeJs和Express,我应该使用哪些模块:
通过查看资产目录或通过代码库解析,发现应用程序中的所有静态资产(前端JS,CSS,图像)
将资产上传到Amazon S3 / CloudFront,使用唯一的“指纹”名称重命名每个文件
将代码库中每个资产的路径替换为CloudFront URL
使旧的CDN资产无效
这是我第一次使用CloudFront。我不确定是否可以用Grunt完成上述所有操作,或者是否最好将它作为Node / Express模块来完成。
使用Rails,我已经读到它像:
# Setup amazon CDN
config.action_controller.asset_host = "xxxxxxxxxxxxx.cloudfront.net"
Run Code Online (Sandbox Code Playgroud)
并且我正在寻找类似的Node堆栈解决方案。
使CDN资产无效是一个坏主意®。在CloudFront中,最多可能需要15分钟才能完成-这将为您的部署增加15分钟。另外,某些浏览器可能会保留旧文件,因为URL相同。
相反,您可能应该对静态资产进行版本控制,并以不同的版本名称发布新版本。
例如:
my-app/1.2.3/main.js
my-app/1.2.4/main.js
Run Code Online (Sandbox Code Playgroud)
等等等等。
这给您带来两个好处:
为了部署到S3,有一些特定的插件。但是,我更喜欢将grunt-shell与正式的Amazon AWS CLI一起使用
配置它看起来像这样:
shell: {
cp: {
command: "aws s3 cp --recursive dist/ s3://my-bucket/my-app/"
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用grunt从某个位置读取版本变量,然后自动将所有文件放入dist/{version}/文件夹中,同时将html中的任何路径替换为正确的version路径。
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |