我一直在嘗試一段時間在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,並沒有顯示燒瓶組件。謝謝
任何人都無法幫助? – Fadyboy