2017-02-21 17 views
0

У меня есть несколько веб-сайтов, на мой s3 + CloudFront, например:Открыть в новой вкладке не работает, как ожидалось с s3 статического веб-сайта и CloudFront

  • www.example.com/test/#/
  • www.example.com/test1/#/

www.example.com является основным ведро, испытания и test1 быть папки ниже и отдельных веб-сайтов.

Теперь проблема заключается в том, что я пытаюсь открыть что-то на новой вкладке, например на панели управления. При регулярной навигации URL-адрес становится: www.example.com/test/#/dashboard, и он отлично работает. Но когда новая вкладка удаляет тест, он становится: www.example.com/#/dashboard и дает мне 404.

Является ли это проблемой с угловой конфигурацией? Или проблемы с облачным экраном и s3?

Edit, некоторые из кода маршруты конфигурации ниже:

$urlRouterProvider.otherwise("/"); 
$stateProvider 
    .state('home', { 
    url: '/', 
    templateUrl:'test/javascripts/templates/welcome/views/welcome.html', 
    controller: 'WelcomeController' 
    }) 
    .state('dashboard', { 
    url: '/dashboard', 
    templateUrl: 'test/javascripts/templates/dashboard/views/dashboard.html', 
    controller: 'DashboardController' 
    }) 
+0

Кажется, проблема связана с угловым '#' url's. Pls вставляет ваши маршруты и код для проверки. – Sravan

+0

@Sravan Добавил более релевантный код из файла маршрутов ... –

ответ

2

ошибка, кажется, проблема с #URL's

Добавить $locationProvider.html5Mode(true); в конфигурационный файл.

app.config(["$stateProvider","$locationProvider", function($stateProvider,$locationProvider) { 

     $urlRouterProvider.otherwise("/"); 
     $stateProvider 
     .state('home', { 
      url: '/', 
      templateUrl:'test/javascripts/templates/welcome/views/welcome.html', 
      controller: 'WelcomeController' 
     }) 
     .state('dashboard', { 
      url: '/dashboard', 
      templateUrl: 'test/javascripts/templates/dashboard/views/dashboard.html', 
      controller: 'DashboardController' 
     }) 

    $locationProvider.html5Mode(true).hashPrefix('!') 
    }]); 

Теперь, вы должны сообщить браузеру об изменении, так что вы должны установить base href в Головном теге.

<base href="/">

CHeck this link for more information

+0

Я собираюсь поддержать ваш ответ, потому что он немного помог мне, но я добавил решение, которое я нашел, спасибо anyway =) –

+0

@GustavoGabriel, np, final необходимо, чтобы получить решение. Рад помочь вам. :) – Sravan

0

@Sravan ответ вспомнил меня базового HREF тега индекса HTML, который я установил давно. У меня было так:

<base href="/"> 

Но так как я работаю с папками в s3, я думаю, что/указывал на основание моего URL и удаление test из URL. Так что мне просто пришлось удалить/становиться:

<base href="">