Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.06.2013, 23:31
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Как задавать многоязычность в URL
Что из себя представляет URL на многоязычном сайте, понятно. Это в простом случае site.com/ru/page/123, в сложном site.ru/page/123 или ru.site.com/page/123.

Рассмотрим только простой случай. Сразу возникает вопрос, как обзывать ссылки?

Можно задать href="/{{langCode}}/page/{{item.id}}", но сразу возникает проблема откуда взять langCode. Придется пихать его в глобальную область видимости, что не хотелось бы. Более предпочтительный вариант: href="/page/{{item.id}}" Но тогда другой вопрос, как это обрабатывать в роутере? Пока терзаю ui-Router но еще не разобрался что там к чему.

Что посоветуете?
Ответить с цитированием
  #2 (permalink)  
Старый 17.06.2013, 04:03
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Добавка по теме:
Пытаюсь перейти в режим HTML5, записал
$locationProvider.html5Mode(true).hashPrefix('!');

и в .htaccess
<IfModule mod_rewrite.c>   
  RewriteEngine on

  # if a directory or a file exists, use it directly
  RewriteCond %{REQUEST_FILENAME} -s [OR]
  RewriteCond %{REQUEST_FILENAME} -l [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^.*$ - [NC,L]

  # otherwise forward it to index.html 
  RewriteRule ^(.*) /#!/$1 [NC,L]
</IfModule>

Либо так (результат такой же)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) /#!/$1 [NC,L]

Редирект вроде бы работает, т.е. ни 400 ни 500 ошибок не возникает, но в коде страницы хаос. В HEAD кусок ангуляровского кода, а все подключаемые скрипты переместились в BODY. При этом сервер подгружает их не из корневого каталога, а относительно пути из строки адреса, который принял за базовый
Ответить с цитированием
  #3 (permalink)  
Старый 17.06.2013, 06:19
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Shitbox2
RewriteRule ^(.*) /#!/$1 [NC,L]
Разве хэш составляющая отсылается браузером на сервер? Она же отображается только в адресной строке, не?
Ответить с цитированием
  #4 (permalink)  
Старый 17.06.2013, 07:44
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

А ее и не надо отсылать. Смысл в том, чтобы сервер обычный УРЛ преобразовывал в УРЛ с хэшем и отсылал его таким клиенту, а клиент опять преобразует в нормальный УРЛ.

P.S. В общем, основная проблема в том, что все ссылки на ресурсы принимают вид site.ru/адрес по которому пришел пользователь/css/main.css Хотя на самом деле все лежит в корне site.ru/css/main.css

Последний раз редактировалось Shitbox2, 17.06.2013 в 07:53.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
есть ли в js понятие частоты кадров, наподобие как во флэше? andrew_F Общие вопросы Javascript 8 01.05.2012 20:25
JQuery как получить url? Memfis jQuery 8 29.07.2011 01:39
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57
Как определить директорию (URL) в которой лежит скрипт? rkwdv Общие вопросы Javascript 4 09.02.2010 15:49
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 09.02.2010 00:00