[Update] 优化重定向

pull/4049/head
ibuler 2020-05-27 20:33:09 +08:00
parent a0e6d09770
commit a463f632e8
2 changed files with 22 additions and 2 deletions

View File

@ -64,6 +64,14 @@ js_i18n_patterns = i18n_patterns(
) )
apps = [
'users', 'assets', 'perms', 'terminal', 'ops', 'audits', 'orgs', 'auth',
'applications', 'tickets', 'settings', 'xpack'
'flower', 'luna', 'koko', 'ws', 'i18n', 'jsi18n', 'docs', 'redocs',
'zh-hans'
]
urlpatterns = [ urlpatterns = [
path('', views.IndexView.as_view(), name='index'), path('', views.IndexView.as_view(), name='index'),
path('api/v1/', include(api_v1)), path('api/v1/', include(api_v1)),
@ -79,6 +87,10 @@ urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) \
+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += js_i18n_patterns urlpatterns += js_i18n_patterns
# 兼容之前的
old_app_pattern = '|'.join(apps)
urlpatterns += [re_path(old_app_pattern, views.redirect_old_apps_view)]
handler404 = 'jumpserver.views.handler404' handler404 = 'jumpserver.views.handler404'
handler500 = 'jumpserver.views.handler500' handler500 = 'jumpserver.views.handler500'

View File

@ -3,7 +3,7 @@
import re import re
import time import time
from django.http import HttpResponseRedirect, JsonResponse from django.http import HttpResponseRedirect, JsonResponse, Http404
from django.conf import settings from django.conf import settings
from django.views.generic import View from django.views.generic import View
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@ -16,7 +16,7 @@ from common.http import HttpResponseTemporaryRedirect
__all__ = [ __all__ = [
'LunaView', 'I18NView', 'KokoView', 'WsView', 'HealthCheckView', 'LunaView', 'I18NView', 'KokoView', 'WsView', 'HealthCheckView',
'redirect_format_api' 'redirect_format_api', 'redirect_old_apps_view'
] ]
@ -51,6 +51,14 @@ def redirect_format_api(request, *args, **kwargs):
return JsonResponse({"msg": "Redirect url failed: {}".format(_path)}, status=404) return JsonResponse({"msg": "Redirect url failed: {}".format(_path)}, status=404)
def redirect_old_apps_view(request, *args, **kwargs):
path = request.get_full_path()
if path.find('/core') != -1:
raise Http404()
new_path = '/core{}'.format(path)
return HttpResponseTemporaryRedirect(new_path)
class HealthCheckView(APIView): class HealthCheckView(APIView):
permission_classes = () permission_classes = ()