Параллельные проблемы CodeIgniter и Static HTML и htaccess - PullRequest
2 голосов
/ 27 августа 2009

Привет всем.

Я запускаю CI параллельно статическому HTML-сайту со структурой каталогов, например:

  • CI
  • статические
  • user_guide
  • .htaccess
  • index.php

И я использую следующее в моем файле .htaccess для получения статических файлов.

RewriteEngine On
RewriteRule ^(application) - [F,L]

DirectoryIndex /static/index.html

RewriteRule ^([a-z0-9_-]+)\.html$ /static/$1.html [L]
RewriteRule ^images/([a-z0-9_-]+)\.gif$ /static/images/$1.gif [L]
RewriteRule ^images/([a-z0-9_-]+)\.jpg$ /static/images/$1.jpg [L]
RewriteRule ^css/([a-z0-9_-]+)\.css$ /static/css/$1.css [L]
RewriteRule ^js/([a-z0-9_-]+)\.js$ /static/js/$1.js [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

Я помещаю свои «активы» (изображения, CSS и т. Д.) В статическую структуру каталогов (поскольку большая часть того, что я использую в своих представлениях CI, заимствована из существующего сайта). Кажется, все работает нормально, за исключением одной вещи ...

Если я хочу включить плагин JQuery, вот так:

<script src="../../js/jquery.autocomplete.js"></script >

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

Если я переименую файл из «jquery.autocomplete.js» в «autocomplete.js», то этот файл МОЖЕТ быть получен через запрос из адресной строки браузера, но, очевидно, не будет загружаться и работать правильно в моем JavaScript ( JavaScript прекращает выполнение именно в тот момент, когда вызывается функция autocomplete ():

$("#fld").autocomplete("ajax/val", {
    width: 260,
    selectFirst: false
});

Я пробовал варианты правила RewriteRule, которое применяется к каталогу / js, и, похоже, ничего не работает, но я всегда нащупываю в темноте в .htaccess. Кто-нибудь может помочь?

Это последнее, что я пробовал, и оно не работает:

RewriteRule ^js/jquery\.([a-z0-9_-]+)\.js$ /static/js/jquery.$1.js [L]

Спасибо за любую помощь.

1 Ответ

1 голос
/ 28 августа 2009

Вот ответ:

RewriteRule ^js/([a-z0-9_\.]+)\.js$ /static/js/$1.js [NC,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...