Ответ из приложения WSGI загружается в браузер вместо отображения - PullRequest
2 голосов
/ 25 января 2012

Я пытаюсь разместить приложение WSGI (написанное на webpy, размещенное на Apache) на сервере Ubuntu.Всякий раз, когда я запускаю свое приложение, ответ JSON загружается вместо отображения в браузере.Однако то же приложение работает нормально на localhost.Вот код приложения WSGI (взято из http://library.linode.com/frameworks/webpy/ubuntu-10.04-lucid) -

import web
import os
import sys
app_path = os.path.dirname(__file__)
sys.path.append(app_path)
os.chdir(app_path)
urls = ('/(.*)', 'hello')

web.debug = False # You may wish to place this in a config file
app = web.application(urls, globals(), autoreload=False)
application = app.wsgifunc() # needed for running with apache as wsgi

class hello:        
    def GET(self, name):
          if not name: 
               name = 'World'
        return 'Hello, ' + name + '!'

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

Мои настройки конфигурации Apache -

WSGIScriptAlias /project /var/www/mywebsite.com/htdocs/project/main.py
<Directory /var/www/mywebsite.com/htdocs/project>
    Order deny,allow
    Allow from all
    SetHandler wsgi-script
    Options ExecCGI
</Directory>   

Когда из браузера я иду вwww.mywebsite.com/project/ затем загружается файл с надписью «Hello, World!».

Однако, когда я захожу на www.mywebsite.com/project, я получаю сообщение «NotНайдено "

1 Ответ

2 голосов
/ 25 января 2012

Что касается проблемы Not Found, я думаю, тот факт, что отображение URL начинается с косой черты, заставляет использовать косую черту после пути, указанного в записи WSGIScriptAlis в конфигурации apache.

в качествеПриложение wsgi попытается выполнить поиск URL-адреса, который будет полностью пустым, если в URL-адресе не используется косая черта.это можно решить двумя способами.для начального тестирования вы можете изменить карту URL на

urls = ('(.*)', 'hello')

или использовать mod_Rewrite, чтобы всегда добавлять косую черту после пути, посмотрите здесь Добавить косую черту в URL

в отношении загружаемого файла вместо того, чтобы отображаться в браузере, я хотел бы предложить, чтобы вы могли использовать некоторые инструменты отладки браузера, такие как Firebug или Chrome Developer Tools, чтобы проверить, какой тип содержимого возвращает «hello world».В web.py должен быть способ установить тип контента.см. здесь способ установки типа контента webpy: как обслуживать JSON

надеюсь, что что-то из этого поможет

...