2012-01-19 17 views
5

Powiedzmy chcę następujący adres URL, aby dopasować z myślą django przez urls.py: www.mysite.com/cake/#vanillaJak uzyskać adres URL w Django urls.py, aby rozpoznać # (hash) w adresie URL?

W urls.py mam coś takiego:

url('^cake/#.*/$', app.views.view), 

Więc zasadniczo chcę wszystkich adresów URL zaczynających się od korzenia: www.mysite.com/cake/#, do obsłużenia w tym widoku. Jednak adresy URL django wydają się traktować # jako% 23, więc zamiast tego wszystkie adresy z rootem www.mysite.com/cake/%23 są obsługiwane przez ten widok. Jak mogę uzyskać znak mieszania w url('^cake/#.*/$', app.views.view), aby traktować go jak prawdziwy znak skrótu zamiast% 23?

Dzięki za pomoc!

+8

No-can-do. Hash nie jest wysyłany na serwer. – AdamKG

+0

Oto pytanie SO, które wyjaśnia to bardziej szczegółowo: http://stackoverflow.com/questions/3664257/why-the-hash-part-of-the-url-is-not-in-the-server-side – zackdever

Odpowiedz

3

Musisz zmusić swoich użytkowników do używania IE7 z winetricks. Jest to jedyna przeglądarka, która ma błąd wysłania hasha i innych rzeczy w żądaniu HTTP :)

Jeśli zostało to naprawione, musisz zmusić swoich użytkowników do używania IE7 z winetricks zeszłorocznej wersji.

Jak stwierdził Adam, przeglądarki nie powinny wysłać części hash na serwer. Używanie hasha w adresie URL jest powszechne w przypadku witryn takich jak deezer, ponieważ pozwala użytkownikowi nawigować bez ponownego ładowania strony (cała nawigacja jest obsługiwana w javascript). Pozwala to na nawigację bez interwencji/ponownego ładowania odtwarzacza muzycznego, który jest w pamięci flash.

Jeśli chcesz, aby umożliwić przeglądanie skrótu, a następnie można użyć wtyczki jak: http://tkyk.github.com/jquery-history-plugin/

Powiązane problemy