2010-07-29 1 views
2

В моем приложении django у меня есть URLS.PY, настроенный на прием запросов/community/user/id и/community/user/id/с:Настроить Django URLS.py, чтобы сохранить #anchors в URL-адресе после его перезаписи с помощью конца/

url(r'^(?P<username>[\w-]+)/(?P<cardId>\d+)/$', 'singleCard.views.singleCard', name='singleCardView'),

Я сделал это в несколько раз люди будут добавлять окончание «/», и я не хочу, чтобы поднять 404.

Однако части моего JavaScript Application нибудь добавить анкерная бирка в виде:

/community/user/id#anchorIuseInJavscriptToDoSomething 

Проблема у меня есть Django немедленно переписать URL в:

/community/user/id/ 

с окончанием/и удалите #anchorIuseInJavscriptToDoSomething

Id, как это переписать его:

/community/user/id#anchorIuseInJavscriptToDoSomething/ 

Таким образом, мой javascript на странице все еще может видеть якорь и работу. Как можно адаптировать это регулярное выражение для этого? Я не очень хорошо разбираюсь в регулярном выражении и узнал об этом на примере ...

+0

Это проблема с Safari, а не с Django. – hop

+0

Возможный дубликат [Safari anchors на ссылках не работает.] (Http://stackoverflow.com/questions/3020456/safari-anchors-on-links-not-working) – hop

ответ

2

вы могли бы сделать косую черту дополнительно:

url(r'^(?P<username>[\w-]+)/(?P<cardId>\d+)/?$', 'singleCard.views.singleCard', name='singleCardView'), 
0

Браузер должен обработать повторное добавление якоря после перенаправления. Ваша проблема не имеет ничего общего с Django.

+0

Любая идея, почему это не в Safari, и если есть другое решение? Как, например, настройка Django для приема обоих URL-адресов, но не для их повторной записи? –

+0

@Tristan: это известная проблема с сафари. там уже были исправлены ошибки, но это не помешает, если вы подали тоже. – hop

+0

Кстати, попытка включить привязку в перенаправление сдвинет проблему только на ie8, iirc – hop

0

Почему вы хотите изменить его на /community/user/id#anchorIuseInJavscriptToDoSomething/? Это неверно. Это должно быть /community/user/id/#anchorIuseInJavscriptToDoSomething. Элемент после хэша не является частью URL-адреса и не отправляется на сервер.

+1

Несколько раз пользователь вводит вручную/community/user/id/ с завершающей косой чертой. Я не хочу возвращать 404, когда они это делают. Мне также нужно иметь хэш, поэтому я бы хотел, чтобы я не переписал URL-адрес, но у меня есть работа –