HOWTO: переписать запросы на изображения, css и js в разные папки для каждого приложения? - PullRequest
4 голосов
/ 29 июня 2009

Я пытаюсь создать сайт CodeIgniter для нескольких приложений, где ресурсы для всех приложений будут храниться в одной папке, называемой «активами». Внутри этой единственной папки каждое приложение будет иметь свою собственную папку ресурсов. Итак, если это мой корневой каталог ...

 user_guide
 apps_folder (this is where all my application folders live)
 system
 assets

... папка ресурсов будет организована следующим образом:

assets
  myapp1
      js
      img
      css
      media

Вот мой вызов. Я пытаюсь написать директиву apache, которая переписывает все запросы на файлы, оканчивающиеся на css, js, png и gif, в соответствующий каталог ресурсов для этого приложения. Но пользователь не может знать точное местоположение этих активов на сервере. Чтобы дать вам пример:

Вот запрос: www.myapp1.com/js/jquery.js

Файл находится в: assets / myapp1 / js

Директива проверит а) адрес домена б) расширение файла

... и, основываясь на этих переменных, перезапишет URL, тем самым скрывая реальное местонахождение актива, и позволит ссылаться на активы, как если бы они все были расположены в корне сайта. Кто-нибудь когда-нибудь делал что-то подобное?

спасибо,

Ответы [ 2 ]

3 голосов
/ 29 июня 2009

Это вполне возможно. См. Руководство по переписыванию Apache:

http://httpd.apache.org/docs/1.3/misc/rewriteguide.html

Ваше правило будет выглядеть примерно так:

RewriteCond   %{HTTP_HOST}  \.myapp1\.com$
RewriteRule  ^/js/(.*)\.js$ assets/myapp1/js/$1

Веселись!

1 голос
/ 29 июня 2009

Вы можете использовать AliasMatch

<VirtualHost myapp1>
   AliasMatch ^(.*\.)(js|css)$ /path/to/assets/myapp1$1$2
</VirtualHost>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...