2011-12-15 41 views
1

我使用帶URL前綴的mod_wsgi。我的設置是:如何在django測試中模擬mod_wsgi前綴?

Alias /prefix /path_to_wsgi_file/file.wsgi 
<Directory /path_to_wsgi_file> 
    Options ExecCGI 
    SetHandler wsgi-script 
    ... 
</Directory> 

我想我的Django的測試來模擬這種情況,所以我可以避開測試和實際ENV之間的差異。這意味着我想要request.get_full_path()包含/前綴

任何方式來做到這一點?

編輯:通過源代碼瞭解FORCE_SCRIPT_NAME的功能後,看起來像是在wsgi.py調用urlresolvers的set_script_prefix()時使用的。 我的問題是,當我運行「manage.py測試」時,這不會被調用。 我想我可以在測試中自己調用這個方法。 有什麼更好的建議?

回答

1

通常,您將在Web服務器上正確配置SCRIPT_NAME,並讓reverse爲您處理所有事情。如果您要配置要應用的特定前綴,您可以配置FORCE_SCRIPT_NAME,這將覆蓋可能配置或不配置的任何特定SCRIPT_NAME

這將允許您在給定的/prefix上取消並提供網址。