Как настроить веб-сервер для сервера определенной страницы в качестве страницы по умолчанию? - PullRequest
0 голосов
/ 28 января 2011

Я использую Lighttpd и Django. Я настроил свой сервер Lighttpd для передачи всех запросов, заканчивающихся расширением «.psp», в Django.

Моя стартовая страница - это страница, обслуживаемая через Django, к которой обращаются как "http://192.168.1.198/home.psp".. Я хочу, чтобы пользователь мог просматривать эту страницу, не записывая явно" home.psp "в URL, т.е. используя" http://192.168.1.198"

Возможно ли это?

Спасибо за любую помощь заранее.

Ответы [ 3 ]

1 голос
/ 28 января 2011

Я думаю, что вы путаете понятия «старый» метод, когда отдельные файлы представляют веб-страницы, которые сами содержат код, который передается интерпретатору перед отправкой в ​​ответ на работу django / frameworks.

Если вы знакомы с apache, представьте, что django частично играет роль mod_rewrite.Django и другие фреймворки имеют так называемый механизм диспетчеризации или маршрутизации.

По сути, они подписываются на шаблон MVC, в котором говорится, что вы должны отделить модель, контроллер и представление (на языке django, модель, шаблон и представление).

Теперь, что происходит, выесть файл с именем urls.py в django, который содержит список маршрутов (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 составлен из регулярных выражений, поэтому я могу иметь в качестве URL все, что захочу, во многом то, как формируются URL-адреса stackoverflow.

Так что, по сути, вам больше никогда не понадобятся расширения файлов.Я настоятельно рекомендую приобрести хорошую книгу по джанго - их несколько.

0 голосов
/ 04 мая 2011

Я решил проблему сам. Вот что я сделал:

Мне пришлось добавить инструкцию в url.rewrite-once блок файла конфигурации lighttpd, например:

 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),

Надеюсь, это поможет кому-то в будущем. Спасибо всем за ваши ответы выше. Ура!

0 голосов
/ 06 февраля 2011

Возможно, вам понадобится директива index-file.names в файле конфигурации Lighty. Просто добавьте «home.psp» в список в вашем файле конфигурации, и Lighty будет искать его, когда имя файла не указано.

...