1
2
3
4
5
6
7
8
|
{
"name": "my-project-webpack",
"version": "1.1.3",
"description": "",
"main": "index.js",
"dependencies": {
}
}
|
# 本地版本
./static/dev/
1. 测试环境版本
./static/test/
1. 正式环境版本
./static/dist/
|
https://cdn.domain.com/1.1.3/static/dev/js/app.js
|
var package = require("./package.json");
var version = package.version;
baseConfig.devtool = '(none)'
baseConfig.output = {
path: path.resolve(__dirname, './static/test/'),
publicPath: 'https://cdn.domain.com/'+version+'/static/test/',
filename: 'js/[name].js',
chunkFilename: '[name].js'
};
|
APP_CDN_URL = 'https://cdn.domain.com/'
if RUN_MODE == 'DEVELOP':
BUNDLE_NAME = '/static/dev/'
elif RUN_MODE == 'TEST':
BUNDLE_NAME = '/static/test/'
elif RUN_MODE == 'PRODUCT':
BUNDLE_NAME = '/static/dist/'
|
def index(request,question_id):
V = Config().get_content('V') or '1.1.3'
REMOTE_BUNDLE_URL = '%s%s%s'%(settings.APP_STATIC_URL, V, settings.BUNDLE_NAME)
return render(request, 'index.html', {'BUNDLE_URL': REMOTE_BUNDLE_URL,})
|
...
<script type="text/javascript" src="https://www.chenshaowen.com/blog/{{BUNDLE_URL}}js/vendors.js"></script>
<script type="text/javascript" src="https://www.chenshaowen.com/blog/{{BUNDLE_URL}}js/app.js"></script>
...
|
before_script:
- source /data/runner/web/bin/activate
- which node && node --version
- which npm && npm --version
- LANG="zh_CN.utf8"
- export LC_ALL=zh_CN.UTF-8
stages:
- build
build-webpack:
stage: build
cache:
untracked: true
paths:
- ./node_modules
script:
- echo "start build test"
- rm -rf ./static/*
- npm install
- if [[ $(git log -1 --pretty=%B) = *"["*"skipbuild"*"]"* && $CI_COMMIT_REF_NAME = 'master' ]]; then echo "skip build"; else npm run build; fi;
- source get_version.sh
- echo $PACKAGE_VERSION
- touch ./static/$PACKAGE_VERSION
- if [[ $(git log -1 --pretty=%B) = *"["*"deploy"*"]"* && $CI_COMMIT_REF_NAME = 'master' ]]; then python upload.py $DEPLOY_CMD ./static $PACKAGE_VERSION; else echo "not deploy"; fi;
artifacts:
name: "static"
paths:
- ./static
only:
- master
|
PACKAGE_VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')
export PACKAGE_VERSION
|
AKIXXXXXXXN 93nxxxxxxxxXHZE9 ap-shanghai app-120000000
|
#!/usr/bin/python
1. -*- coding: utf-8 -*-
############################################
1. 使用 cos-python-sdk-v5 上传文件夹到腾讯云
1. 安装方式
1. pip install cos-python-sdk-v5
1. 使用方式
1. python upload.py AKIXXXXXXXN 93nxxxxxxxxXHZE9 ap-shanghai app-120000000 ./static 1.0.0
############################################
import os
import sys
from qcloud_cos import CosConfig, CosS3Client
def main(argv):
1. 校验参数
if len(argv) == 7 :
secret_id = sys.argv[1] # 用户的 secretId
secret_key = sys.argv[2] # 用户的 secretKey
region = sys.argv[3] # 用户的 Region( 'ap-beijing-1')
bucket = sys.argv[4] # 用户的 Bucket
filePath = sys.argv[5] # 上传文件夹路径
version = sys.argv[6] # 上传文件 Version,可以理解为 Prefix
else:
print 'argv error'
return
1. 0,获取本地目录文件列表
1. 获取文件列表
file_list = []
print 'upload dir: %s' % filePath
for root, dirs, files in os.walk("./static", topdown=False):
file_list.extend([os.path.join(root, name).replace('\', '/') for name in files])
print 'ready to upload num of files %s,list: %s' % (len(file_list), file_list)
#1,用户配置
token = None # 使用临时密钥需要传入 Token,默认为空,可不填
scheme = 'http' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme, Timeout=300)
1. 2. 获取客户端对象
client = CosS3Client(config)
print 'Get client Success'
1. 3. 开始上传
result = []
for file in file_list:
response = client.put_object_from_local_file(
Bucket=bucket,
LocalFilePath=file,
Key='/%s%s' % (version, file[1:]),
)
result.append((file, response['ETag']))
print 'upload result: %s, Total: %s, Success:%s' % (result, len(file_list), len(result))
if __name__ == '__main__':
main(sys.argv)
|
<script type="text/javascript" src="https://cdn.domain.com/1.1.3/static/test/js/vendors.js"></script>
<script type="text/javascript" src="https://cdn.domain.com/1.1.3/static/test/js/app.js"></script>
|
相关推荐
作者:即构科技 由 51 CTO 主办的“WOT 全球技术创新大会 2023·深圳站”于 11 月 24 日 - 25 日召开,即构科技后台技术总监肖潇以“边缘容器在全球音视频场景的探索与实践”为主题进行分享。 边缘计算作为中心云计算的补充,通过边缘容器架构和云边协同,为音视频、云游戏、元宇宙等场景带来了更好的用户体验和业务价值。 讲师现场风采 肖潇提到,即构这种实时互动的业务场景,天然就是边缘计
Lima 可以帮助克服在 Mac 上运行容器的挑战。 在你的 Mac 上运行容器可能是一个挑战。毕竟,容器是基于 Linux 特有的技术,如控制组和命名空间。 幸运的是,macOS 拥有一个内置的虚拟机监控程序hypervisor,允许在 Mac 上运行虚拟机(VM)。虚拟机监控程序是一个底层的内核功能,而不是一个面向用户的功能。 hyperkit 是一个可以使用 macOS 虚拟机监控程序运行虚
本文主要讲解Zabbix的2种模式,主动模式和被动模式的配置 Zabbix 3.0 主备模式 [八] 2016年10月11日 zabbix 笔者QQ:381493251 博客地址:www.abcdocker.com 微信公众号:abcdocker Abcdocker交流群:454666672 如果遇到什么问题可以进群询问,我们是一个乐于帮助的集体! 监控常遇到的问题? 1.监控主机多,性能跟不上,
在了解virtual-Kubelet之前,我们先了解下什么是Kubelet。 Kubelet 是在每个Node节点上运行的主要 “节点代理”。在Kubernetes集群中每个节点都会启动一个kubelet进程,kubelet基于PodSpec来工作。每个Pod Spec是一个描述Pod的YAML或JSON对象。Kubelet接受通过各种机制(主要是通过Apiserver)提供的一组Pod Spec
本文为翻译文章,点击查看原文。 当我们谈论服务网格的时候,有几个问题经常被提及。这些问题的范围覆盖从简单的了解服务网格的历史,到产品和架构相关的比较深入的技术问题。 为了回答这些问题,通过 Aspen Mesh 之旅,我们带来三个主题的系列博文来讨论我们为什么选择了 Istio 。 作为开始,我将重点讨论我最经常被问到的问题之一: 为什么你选择服务网格,是什么原因促使你这样做? LineRate
回到顶部