пятница, 4 февраля 2011 г.

Ruby on Rails модуль исключили из NetBeans IDE 7.0

В новой версии NetBeans IDE 7.0, больше не будет поддерживаться Ruby on Rails модуль, точнее его просто выбросили... Так сообщает официальный сайт NetBeans. 

Придется переходить на альтернативные IDE либо юзать старые версии NetBeans < 7.0

Из платных IDE хвалят RubyMine (корпортаивная лицензия $150, персональная $29 + $49 за обновления), перечитав список бесплатных - то уж лучше старый NetBeans юзать чем кривую Аптану и ей же подобные...

вторник, 1 февраля 2011 г.

Добавить обязательный слеш в конце URL с помощью htaccess

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Последняя строка осуществляет переход со страницы без замыкающего слеша на страницу со слешем. Данный трюк важен для SEO, чтобы рейтинг страницы не расщеплялся на две страницы: со слешем и без него






P.S. Для nginx:
Добавить слеш если нету: rewrite ^(.*[^/])$ $1/ permanent;
Как убрать все двойные слеши (nginx)

пятница, 28 января 2011 г.

Как обновить favicon.ico в Firefox

Иногда, встречается проблема обновления favicon.ico для Firefox, из-за чего трудно протестировать его при редизайне. Даже после сбрасывания кеша, Firefox часто продолжает отображать старый favicon. В таком случае, помогает такой прием:

зайдите на корневую страницу сайта (например http://www.mysite.com/), после чего перейдите по прямой ссылке на ваш фавикон: http://www.mysite.com/favicon.ico

После чего, в окне браузера отобразится обновленная картинка фавикона. Дальше, перейдите назад на корневую страницу вашего сайта и вы увидите что фавикон обновился успешно.

Для очистки кеша, куки и т.д. в Firefox - нажмите Right Ctrl+Right Shift+Del, выберите нужные галочки, период времени за которое нужно все очистить и нажмите "Очистить сейчас". Комбинация работает в IE8+, Chrome


среда, 12 января 2011 г.

Проверка версии браузера с помощью htaccess

Постановка задачи: 
Необходимо перенаправлять пользователей, которые используют устаревшие браузеры на специальную информационную страницу.

Решение: 
Такая задача возникает, если вы отказываетесь поддерживать старые версии браузеров и тратить на них время. Создаем html страницу, на которой выводим информацию, о том, что браузер пользователя устарел, и новую версию можно скачать перейдя по ссылке(ам).

Задачу можно решить с помощью javascript (пример реализации использует jquery), создаем javascript файл и подключаем его в главный шаблон сайта:

jQuery(document).ready(function(){
  if(jQuery.browser.msie && jQuery.browser.version < 7){
    location.href("update-browser.html");
  }
});


Тут проверка проводится для ИЕ6, но не составит труда дописать проверку для других браузеров.

В таком подходе есть негативная сторона - необходима поддержка javascript, небольшая задержка на его выполнение и дополнительный редирект на инфо-страницу. Для избежания всего этого можно осуществлять проверку на уровне Апача, в правилах htaccess.

Пример:

RewriteCond %{HTTP_USER_AGENT} MSIE\ ([56])\.
RewriteRule !\.(css|png|js|gif)$ update-browser.html [L]

С первой строкой все ясно: тут определяем версию ИЕ. Вторая строка заставляет редиректить пользователся на страницу с информацией во всех случаях, кроме тех когда загружаются картинки, стили и скрипты. Если не исключать такие файлы по маске - тогда никогда не подгрузится оформление страницы update-browser.html.

Для остальных браузеров похожие правила:

RewriteCond %{HTTP_USER_AGENT} Firefox/2.* # Firefox > 2
RewriteCond %{HTTP_USER_AGENT} Safari/[0-3] # Safari > 3
RewriteCond %{HTTP_USER_AGENT} Opera/[0-9] # Opera > 9
...

воскресенье, 26 декабря 2010 г.

jQuery установить значение атрибута type для браузера IE

В последней версии jQuery (1.4.x), при изменении атрибута type в Internet Explorer (IE) бросается (throw) исключение (запрещено его изменять).

В стеке ошибок, браузер показывает, что jQuery бросает исключение, которое нигде не обрабатывается. Чтобы его отловить, можно использовать код:


try {
  jQuery("input").attr('type','text');
} catch(e) {
  alert(e.message)
}

Как решение проблемы, многие предлагают использовать jQuery('...').data('element','key','value'), но наверное проще избегать самой ситуации изменения типа поля.

Чаще всего, такая необходимость возникает, если нужно склонировать поле и потом заставить вести себя иначе (например склонировать поле пароля и установить клону тип - текст). Под другими браузерами все будет отлично, а под ИЕ получите ексепшин. Я предпочтаю, в таком случае, не клонировать поле, а создавать - уже с нужным типом и потом выставлять остальные параметры. Но можно и использовать вариант с jQuery.data()

вторник, 21 декабря 2010 г.

Rails. Установка под windows7. Решение типовой проблемы

Если при установке рельсы под windows7 вылазит такая ошибка:

ERROR: While executing gem ... (Errno::ENOENT)

No such file or directory ...

Заходим в папку с установленым Ruby (C:/Ruby например), находим в папке bin файл gem и вставляем в его начало:

ENV['HOME'] = "C:/Ruby"

или ваш уникальный путь к Ruby.

понедельник, 6 декабря 2010 г.