我想在燒瓶服務器上設置一個子域,其中有一個託管在Heroku上的服務器和一個託管在GoDaddy上的自定義域。我已驗證我的子域在本地工作。該子域是我的應用程序中的一個單獨的藍圖。我在瓶中的設置是:與Heroku和Godaddy燒瓶子域(SERVER_NAME問題)
blueprint = Blueprint('blueprint', __name__, template_folder="templates", subdomain="blueprint")
@blueprint.route('/')
def index():
return "Hello Mate"
然後
app.config['SERVER_NAME'] = os.environ['MY_SERVER_NAME']
from blueprint.views import blueprint
app.register_blueprint(blueprint)
在我的本地機器,我設置了一個自定義記錄在我的hosts文件(/etc/hosts
)來測試的子域。該文件具有項:。
127.0.0.1 virtual.local
127.0.0.1 blueprint.virtual.local
如果我瀏覽到blueprint.virtual.local:5000
,我看到預期的結果(一個頁面,只是說:我相信這證明了我的子域設置設置正確,至少在瓶中
我將我的代碼推送到我的heroku應用程序,這是我開始遇到問題的地方。我的heroku站點有一個與之前相關的自定義域。我開始爲新的子域添加一個條目。終端給我:
=== myapp Domain Names
blueprint.mysite.com
www.mysite.com
myapp.herokuapp.com
mysite.com
我遇到的第一個問題是,我只能在heroku網址或自定義域中查看我的網站。這是app.config['SERVER_NAME']
(我設置讓我的子域工作)鏈接到heroku URL或我的自定義URL的結果。當它被設置爲heroku URL時,我只能在該URL訪問該網站時看到該網站,並且當我轉到我的自定義域時,出現404錯誤。當我切換SERVER_NAME
的值時,這是相反的。
第二個問題是我無法讓我的子域與Heroku上的GoDaddy一起工作。在GoDaddy中,我創建了一個CNAME記錄,將我的子域(blueprint
)指向我的heroku站點(myapp.herokuapp.com
)。它是否正確?每當我訪問我的自定義域(blueprint.mysite.com
)上的子域時,我都會收到404錯誤。我相信這與第一個問題有關,但我不確定。我錯過了任何步驟?
有關正確設置的任何建議,以便我可以在Heroku上使用Flask子域,託管在GoDaddy的自定義域上?提前致謝!
有趣 - 內置Flask子域的用例是什麼,然後(如http://stackoverflow.com/questions/11021691/dynamic-subdomain-handling-in-a-web-app-flask)?它是否有用,但不是在Heroku上託管? – 2015-02-18 15:58:47
試了一下,並部署成功。 – 2015-02-19 19:59:09