如何在IBM Bluemix上托管基于Ionic框架与IBM Cloudant DB的公开Web应用?
在Bluemix上托管Ionic纯Web应用的解决方案
我来帮你搞定在Bluemix上托管Ionic纯Web应用的事儿,刚好能满足你想要someapp.mybluemix.net这类访问链接、且暂不启动原型的需求。具体步骤如下:
1. 生成Ionic应用的生产构建包
首先得把你的Ionic项目打包成适合部署的静态文件,在项目根目录执行这条命令:
ionic build --prod
执行完成后,项目的www目录里会生成优化后的静态HTML、CSS和JS文件,这就是我们要部署到Bluemix的核心内容。
2. 配置Bluemix部署清单
进入到项目的www目录下,创建一个名为manifest.yml的配置文件,内容如下(记得替换应用名):
applications: - name: someapp # 替换成你想要的应用名,对应最终的someapp.mybluemix.net memory: 64M # 静态应用不需要太多资源,64M内存完全足够 buildpack: staticfile_buildpack # Bluemix官方的静态文件托管构建包
3. 登录并部署到Bluemix(暂不启动)
确保你已经安装了IBM Cloud CLI,如果还没装可以从IBM Cloud官网下载安装。之后执行以下命令:
# 登录到你的Bluemix账号,企业账号需添加--sso参数 ibmcloud login # 切换到你要部署的组织和空间(如果有多个的话) ibmcloud target -o <你的组织名称> -s <你的空间名称> # 推送应用,--no-start参数实现暂不启动原型的需求 ibmcloud cf push --no-start
执行完成后,你的应用就已经部署到Bluemix了,但不会立即启动。等你需要启动原型时,只需执行ibmcloud cf start someapp(替换成你的应用名)即可。
4. 关键:调整Mobile Foundation跨域配置
因为你的应用之前在Mobile Foundation注册过,现在部署到Bluemix的独立域名后,调用Cloudant托管API会遇到跨域问题。所以需要在Mobile Foundation控制台做以下配置:
- 找到你已注册的应用,进入「应用设置」页面
- 在「CORS允许的来源」中添加你的应用域名:
https://someapp.mybluemix.net(替换成实际的应用名) - 保存配置,这样你的Web应用就能正常和Mobile Foundation托管的API通信了
这样操作后,你就能拥有一个可以通过someapp.mybluemix.net访问的Web应用,而且完全可以按照自己的节奏决定是否启动原型版本。
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

