2015-04-29 5 views
0

У меня есть приложение angularjs, которое использует Angular UI Router, а созданный URL-адрес имеет # в них. Например. http://localhost:8081/#/login. Я использую Python Simple HTTP-сервер для запуска приложения при разработке. Мне нужно удалить # из URL. Я знаю, как удалить его, включив режим HTML5 в угловом режиме. Но этот метод имеет свои проблемы, и я хочу удалить # со стороны сервера.Удалить # из URL-адреса в Python Простой HTTP-сервер

Как я могу это сделать с помощью простого HTTP-сервера Python?

+2

возможно дубликат http://stackoverflow.com/questions/16677528/location-switching-between-html5-and-hashbang-mode-link-rewriting смотри также https://scotch.io/quick- tips/pretty-urls-in-angularjs-remove-the-hashtag – Marein

+0

Нет, его нет. Я знаю, как удалить его из angularJS. но, как я уже сказал, это создает проблемы. Я столкнулся с этим. Взгляните на [это] (http://stackoverflow.com/questions/29936224/page-reload-fails-when-using-angular-ui-router-with-html5-mode-enabled) –

+0

Ах, извините, я didn Не читайте правильно. Я с этой проблемой борюсь с Python Simple HTTP Server самостоятельно, я не нашел решения. Однако мне удалось это сделать с помощью HTTP-сервера NodeJS. – Marein

ответ

-3

Вы можете поймать строку, которая представляет веб-сайт adres, а если есть #, замените его на пустой символ.

stringA = 'http://localhost:8081/#/login' 
stringB = stringA.replace("#", "") 
print(stringB) 
+0

Вы прочитали вопрос? –

+0

Да. Если вам не нравится мой ответ, извините. Но я просто пытаюсь помочь. И в Риме больше дорог. :-) – Tenzin

+0

Я знаю, что вы пытаетесь помочь. Ваш ответ не имеет смысла, поэтому я спросил. Я хотел удалить # из URL-адреса, когда он работает на SimpleHTTPServer, как это можно сделать в IIS и Apache. У меня нет знаний в python, поэтому, если это часть большого ответа, добавьте его. –

0

Ну, у меня была аналогичная проблема, но разница в том, что у меня была Spring на стороне сервера.

Вы можете зафиксировать исключение страницы, не найденное на вашей стороне сервера, и перенаправить на страницу по умолчанию [маршрут] в своем приложении. Весной у нас есть обработчики для исключений страниц, которые не были найдены, я думаю, они также доступны в python.

1

Вы можете получить из BaseHTTPRequestHandler и переопределить метод do_GET.

class MyHTTPHandler(BaseHTTPRequestHandler): 
    def do_GET(self): 
     # do your own processing further, if you want to pass it back to 
     # default handler with the new path, just do the following 
     self.path = self.path.strip('/#') 
     BaseHTTPRequestHandler.do_GET(self)