为了避免使用Foreman开发问题,我需要将Puma服务器包装在Quotaguard的Socks代理中,以便仅在生产和生产中获取静态IP。
使用我在article找到的this question链接,我在Procfile的bin / web调用中实现了以下代码。
#!/bin/sh
if [ "$RACK_ENV" == "production" ]; then
echo Using qgsocksify to wrap Puma
bin/qgsocksify bundle exec puma -C config/puma.rb
else
echo Using straight Puma
bundle exec puma -C config/puma.rb
fi
虽然环境是在RACK_ENV上设置的生产,但是打开的“直接Puma”服务器启动了。在本地测试这个工作,但它在Heroku上失败了。
什么是导致它在Heroku上失败的语法错误?
答案 0 :(得分:1)
显然sh并没有在Heroku上使用==等效,但在我的Mac上本地工作,这就是它在开发中的作用。谷歌搜索显示标准sh使用=等价。在这种情况下,我只是将#!/ bin / sh更改为#!/ bin / bash,因为Heroku也支持bash。
.directive('pane', function() {
return {
require: '^tabs',
restrict: 'E',
transclude: true,
scope: {
title: '@',
paneClick: '=',
paneClickAttr: '='
},
link: function(scope, element, attrs, tabsCtrl) {
tabsCtrl.addPane(scope);
},
template: '<div ng-click="paneClick(paneClickAttr)" class="tab-pane" ng-class="{active: selected}" ng-transclude>' +
'</div>',
replace: true
};})
<pane title="First Tab" pane-click="addChocolate()" pane-click-attr="candy">