我正在使用Lighttpd和Django。我配置了我的Lighttpd服務器,將所有以「.psp」擴展名結尾的請求傳遞給Django。如何將Web服務器配置爲將特定頁面作爲默認頁面進行服務?
我的啓動頁面是通過Django提供的頁面,它以「http://192.168.1.198/home.psp」的形式訪問。我想讓用戶瀏覽這個頁面,而不用在URL中明確寫入「home.psp」,即使用「http://192.168.1.198」
這可能嗎?
感謝您提前提供任何幫助。
我正在使用Lighttpd和Django。我配置了我的Lighttpd服務器,將所有以「.psp」擴展名結尾的請求傳遞給Django。如何將Web服務器配置爲將特定頁面作爲默認頁面進行服務?
我的啓動頁面是通過Django提供的頁面,它以「http://192.168.1.198/home.psp」的形式訪問。我想讓用戶瀏覽這個頁面,而不用在URL中明確寫入「home.psp」,即使用「http://192.168.1.198」
這可能嗎?
感謝您提前提供任何幫助。
我自己解決了這個問題。下面是我做的:
我不得不添加里面像lighttpd的配置文件的url.rewrite-once
塊聲明:
url.rewrite-once = (
"^(/media.*)$" => "$1",
"^(/static.*)$" => "$1",
"^/favicon\.ico$" => "/media/favicon.ico",
"^(/)$" => "/my_project_dir/home.psp",
"^(/.*)$" => "/my_project_dir$1",
)
從這個
除此之外,我加入我的urls.py以下行:
(r'^$',my_index_view_name),
希望這可以幫助未來的人。感謝大家以上的回覆。乾杯!
我認爲你在使用單獨文件表示網頁的「舊」方法之間存在混淆概念,這些網頁本身包含的代碼會在響應django/frameworks的工作方式發送之前傳遞給解釋器。
如果你對apache很熟悉,可以把django想象成mod_rewrite角色的一部分。 Django和其他框架具有所謂的調度器或路由機制。
基本上,他們訂閱的MVC模式,說你應該分開模型,控制器和視圖(在Django的說法,模型,模板和視圖)。
現在接下來會發生的是,您在django中有一個名爲urls.py
的文件,其中包含處理它們的路徑列表(url)和方法名稱(通常包含在views.py
中)。下面是一個例子:
urlpatterns = patterns('',
url(r'^dologin$', 'testapp.views.auth_login', name="auth-login-uri"),
url(r'^doopenidlogin$', 'testapp.views.auth_openid_login', name="auth-openid-login-uri"),
url(r'^dologout$', 'testapp.views.auth_logout', name="auth-logout-uri"),
url(r'^login$', 'testapp.views.loginform', name="login-form"),
url(r'^openidlogin$', 'testapp.views.openidloginform', name="openid-login-form"),
url(r'^$', 'testapp.views.index', name="index"),
)
這裏testapp
是一個Python包,views.py
是一個python文件和index
是Django視圖。該網址是由正則表達式構建的,所以我可以擁有任何我想要的url,更多的是構建stackoverflow網址。
所以基本上,你再也不需要文件擴展名了。我強烈建議在django上寫一本好書 - 周圍有幾本。
您可能正在尋找的是Lighty配置文件中的index-file.names指令。只需將「home.psp」添加到配置文件中的列表中,Lighty將在未指定文件名時查找它。
您可以將`/`重定向到`/ home.psp`。或者代理`/`到`/ home.psp`(更難),或者改變django從`/`服務根頁面,強制lighttpd通過轉發`^ $`或`。* \。psp`到django。只是在我入睡之前有一些想法。 GL! – 2011-01-28 08:10:03
爲什麼你配置服務器首先將`Django頁面作爲`.psp`? Django不是PSP,並且不需要任何特定的擴展。 – 2011-01-28 09:08:41