2016-06-08 69 views
0

我一直在嘗試一段時間在Godaddy託管服務器上部署燒瓶應用。我在網上做了大量的搜索並跟着他們,但我仍然有問題。現在我的應用程序只顯示爲普通html,因此我在頁面上顯示了{{my_var}}。我的燒瓶應用程序在本地工作,這是文件夾結構;在Godaddy共享主機上部署燒瓶應用仍然存在問題

對myApp文件夾,其中包含靜態文件夾,CSS,JavaScript和圖片,模板,我的HTML文件夾和myapp.py和forms.py文件有MyApp文件夾下

在我的託管服務器上,我的文件夾結構是當前的; $ HOME/public_html其中包含index.html和base.html(index.html繼承自此文件的頁眉和頁腳),$ HOME/public_html/cgi-bin其中包含myapp.cgi,myapp.py和.htaccess文件。

我已經創建了一個cgi文件並將其保存在public_html/cgi-bin文件夾中。該文件也可以使用755權限執行。這些是內容;

#!/home/username/public_html/cgi-bin/flask_app/bin/python 
from wsgiref.handlers import CGIHandler 
from myapp import app 
import os 
import cgitb; cgitb.enable() 

os.environ["SERVER_NAME"] = "127.0.0.1" 
os.environ["SERVER_PORT"] = "4000" 
os.environ["REQUEST_METHOD"] = "GET" 
os.environ["SERVER_PROTOCOL"] = "http/1.1" 

CGIHandler().run(app) 

請注意,我的文件上的shebang是我的virtualenv的路徑,其中我已安裝了flask。 python的版本是v2.7 我也有我的主要燒瓶應用程序(myapp.py,它也是可執行文件並具有755許可權)文件,路徑和內容如下;

#!/home/username/public_html/cgi-bin/flask_app/bin/python 
import os 
import sys 

sys.path.insert(0, '/home/aofadero/public_html/cgi-bin')#path to myapp.py 

from flask import Flask, render_template 

app = Flask(__name__) 

@app.route('/') 
def home(): 
    return render_template("index.html") 


if __name__ == "__main__": 
    app.run() 

此文件也在我的public_html/cgi-bin文件夾中。我也有一個.htaccess文件,它具有以下內容;

AddHandler cgi-script .cgi .py 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(/home/username/public_html/cgi-bin/myapp.cgi) 
RewriteRule ^(.*)$ /home/username/public_html/cgi-bin/myapp.cgi/$1 [L] 

現在這個.htaccess文件是目前在我的public_html/cgi-bin目錄文件夾,因爲如果我把它放在文件夾中的public_html,我得到一個500錯誤消息。唯一一次我沒有得到錯誤的是.htaccess文件在cgi-bin文件夾中。我所做的一些研究表明將其放置在cgi-bin文件夾中,其他人則在public_html文件夾中說。我發現它只適用於我在cgi-bin文件夾中的作品。如果我做./myapp.cgi我得到以下錯誤;

Status: 404 NOT FOUND 
Content-Type: text/html 
Content-Length: 233 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
<title>404 Not Found</title>... 

任何人都可以幫助我,因爲我已經嘗試了我所能做的一切。現在我只是得到普通的html,並沒有顯示燒瓶組件。謝謝

+0

任何人都無法幫助? – Fadyboy

回答

0

我也有類似的問題。據我所知,一個的index.htm文件必須放置在的public_html,但是當你嘗試做render_template(爲「index.htm」),瓶將查找該文件中模板文件夾。渲染實際上並未執行。 index.htm文件將始終作爲默認頁面顯示在瀏覽器上。你能找到解決方案嗎?

+0

恐怕我還沒有找到解決方案。我希望別人能夠提供幫助。 – Fadyboy