четверг, 15 августа 2013 г.

Razor в Composite C1 CMS 4.0 (10): Замена корневой папки для файлов Razor-функций

Вы уже знаете, что Razor-функции в Composite C1, это попросту .cshtml-файлы, правда, с дополнительным синтаксисом, который дает возможность добавлять параметры и описание в такие функции и таким образом превращать их в прозрачные для конечного пользователя C1-функции.

Эти самые .cshtml-файлы сохраняются по умолчанию в папку ~/App_Data/Razor. Эта папка является корневой для файлов Razor-функций и когда вы работаете с ними в админке, все происходит именно в этой папке.

Если же вы посчитали, что выбор физической папки для Razor-функций не совсем то, что вам нужно, то вы можете использовать другую папку для этих целей.


Замена корневой папки ~/App_Data/Razor для файлов Razor-функций


Чтобы заменить папку, скажем на ~/App_Data/Composite/Razor:
  1. Создайте папку по желаемому пути и скопируйте в нее web.config из старой корневой папки ~/App_Data/Razor. Это нужно, чтобы все гладко работало.
  2. Теперь откройте ~/App_Data/Composite/Composite.config и найдите такой элемент configuration/Composite.Functions.Plugins.FunctionProviderConfiguration/
    FunctionProviderPlugins/add[@name="RazorFunctionProvider"]
    .
  3. В его атрибуте directory, вместо старого пути, укажите новый, скажем, ~/App_Data/Composite/Razor.
  4. Сохраните изменения и перезапустите сервер (Инструменты / Перезапустить сервер).
Пример измененной части Composite.config:

<Composite.Functions.Plugins.FunctionProviderConfiguration>
  <FunctionProviderPlugins>
    <!-- (другие настройки) -->
    <add name="RazorFunctionProvider" directory="~/App_Data/Composite/Razor" type="Composite.Plugins.Functions.FunctionProviders.RazorFunctionProvider.RazorFunctionProvider, Composite" />
    <!-- (другие настройки) -->
  </FunctionProviderPlugins>
</Composite.Functions.Plugins.FunctionProviderConfiguration>

Теперь Composite C1 будет признавать в качестве Razor-функций только правильно оформленные .cshtml-файлы по новому пути (в нашем случае, ~/App_Data/Composite/Razor).

Комментариев нет:

Отправить комментарий