2014-09-11 2 views
4

Я использую Html5Mode(true) в своем приложении AngularJS. Это прекрасно работает, когда я просматриваю на мой сайт, как это:Неожиданный токен при обновлении страницы с использованием Html5Mode

http://www.example.com 

Это затем преобразуется в:

http://www.example.com/home/index 

И моя страница отображается нормально.

Но, когда я нажимаю F5, то я получаю много ошибок в моем окне консоли:

Resource interpreted as Script but transferred with MIME type text/html: "http://www.example.com/home/js/jquery/jquery.min.js". index:22 
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://www.example.com/home/js/slider/angular.rangeSlider.css". index:16 
Uncaught SyntaxError: Unexpected token < jquery.min.js:1 
Resource interpreted as Script but transferred with MIME type text/html: "http://www.example.com/home/js/angular/angular-resource.min.js". index:25 
Resource interpreted as Script but transferred with MIME type text/html: "http://www.example.com/home/js/angular/angular.min.js". index:24 
Uncaught SyntaxError: Unexpected token < angular.min.js:1 
Uncaught SyntaxError: Unexpected token < angular-resource.min.js:1 
Resource interpreted as Script but transferred with MIME type text/html: "http://www.example.com/home/js/angular/angular-cookies.min.js". index:26 
Uncaught SyntaxError: Unexpected token < 

Я уже настроил мой .htaccess файл, как это:

RewriteEngine on 

# Don't rewrite files or directories 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 

RewriteRule^- [L] 

# Rewrite everything else to index.html to allow html5 state links 
RewriteRule ^(.*) /index.html [L] 

Но это Безразлично Не работайте, когда я обновляю страницу. Затем я получаю ошибки. Есть что-то, что мне не хватает?


Я использую ui-router. Не уверен, что это имеет значение. Мой маршрут выглядит примерно так:

$locationProvider.html5Mode(true); 

$urlRouterProvider.otherwise('/home/index'); 
$stateProvider 
    .state('home', { 
     abstract: true, 
     url: '/home', 
     templateUrl: '/tpl/home.html' 
    }) 
    .state('home.index', { 
     url: '/index', 
     templateUrl: '/tpl/home_index.html' 
    }) 

Любая идея, почему обновление страницы приводит к ошибкам, которые я написал выше?

+1

Я только что нашел решение. Проблема в том, что вы переписываете все пути к серверу. Вам необходимо создать правило для исключения папок. Содержимое и скрипты – VsMaX

ответ

0

Вы должны переписать только маршрутизатор URLs, которые необходимы, например:

/дом - index.html

/продукта/1234 - index.html

Не переписывать все запросы index.html. потому что большинство URL-адресов нельзя переписывать.

Смежные вопросы