App:сборка и Тематические папки

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

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

Моя текущая структура:

- App (Custom paths)
-- Controller
-- Model
-- Plugin
-- View
--- Themed
---- Admin *
- Swish (Actual APP directory)
- ...

* Этот каталог приведет к тому, что макет будет отображаться с неправильным расположением css: например, css/style.css вместо /theme/Admin/css/style.css

Папка Admin нарушает пути CSS и JS макета, а также представления в App/View/Themed/Admin/* не переопределяют представления в Swish/View/Themed/Admin/*.

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

Любая помощь приветствуется.


person Kevin Vandenborne    schedule 15.11.2011    source источник


Ответы (2)


Мне любопытно, конфликтует ли ваша тема в приложении с темой дополнительного пути, потому что они обе называются «Администратор».

Есть несколько вещей, которые вы могли бы проверить.

  1. Класс App позволяет вам распечатать пути, которые он использует для поиска различных классов: App::path('View') показывает все пути, которые он будет использовать, например, для поиска представлений.
  2. Также есть специальный для поиска тем. По словам API:

App::themePath('purple') даст полный путь к фиолетовой теме.

http://api20.cakephp.org/view_source/app#line-341

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

person brism    schedule 21.11.2011
comment
Проблема заключается в том, что торт пытается загрузить css в веб-корневом каталоге тематических папок по дополнительному пути, я предположил, что он загрузит те, что из фактического каталога приложения, если css не существует в дополнительных путях - точно так же, как это было бы с представление, контроллеры и т. д. Перетаскивание всего веб-сайта на дополнительные пути сработало, но это не то решение, которое я ищу. Тем не менее, мне все равно нужно сделать это на заказ, чтобы объединить файлы css и js, поэтому я могу просто выполнять проверки там. Спасибо за ответ. - person Kevin Vandenborne; 23.11.2011

Прежде всего, проверьте права доступа к папке/каталогу... затем...

Вы используете Cakephp 2? Похоже, вы могли бы быть. На самом деле я разрабатываю приложение с тематическим каталогом для администратора, расположенным в /app/View/Themed/Admin. Чтобы включить файлы CSS, я использую помощник html, поэтому включайте их так:

echo $this->Html->css('admin.main');

И это вызывается из элемента, расположенного в /app/View/Themed/Admin/elements, а файл CSS находится в /app/View/Themed/Admin/webroot/css. Это ваша текущая установка? Я знаю, что это действительно касается только первой проблемы в вашем посте. Что касается вашего второго пункта, может ли это быть проблемой htaccess? Насколько мне известно, все файлы приложения должны быть расположены в /app (то есть: /home/user/htdocs/app), в то время как для совместного использования библиотек Cake, плагинов, поставщиков и т. д. в нескольких приложениях можно разместить каталоги, отличные от /app. над корнем документа, т.е. /home/user/lib, /home/user/plugins, /home/user/vendors.

Надеюсь, что-то из этого поможет.

D

person iamdash    schedule 18.11.2011
comment
Это не решило мой вопрос, но привело меня к выводу, что для тематических папок в дополнительных путях требуется копия полного веб-сайта из тематической папки в каталоге приложения. Как-то глупо. Он пытался получить css из App/View/Themed/Admin/webroot/css, и, поскольку его там не было, он пытался получить его из Swish/webroot/css вместо Swish/View/Themed/Admin/. вебрут/css. Ошибка CakePHP? - person Kevin Vandenborne; 20.11.2011