Тема: Страница 404

Времени суток доброго.
Сверстал весь сайт без встроенного конструктора, хочу сделать страницу ошибок, но не получается. Как понял, надо зайти в конструктор, выбрать маршрут и шаблон, но там ничего нет про ошибки. Пытался сделать по инструкции, скопировал exception.tpl в папку с темой. Тоже не работает. Пишет 404 на несуществующей странице, а шаблон не подключает.
Подскажите, как сделать эту страницу?

Повысить оценку Понизить оценку

2

Re: Страница 404

404 страница (она же страница любых исключений в системе) - это особенная страница в рамках темы.
Её нет в маршрутах, по некоторым техническим соображениям. Шаблоном данной страницы всегда является файл exception.tpl, находящийся в корне темы.

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

Проверьте, пожалуйста, состояние данной опции.

Повысить оценку Понизить оценку

Re: Страница 404

Не помогло. Опция отключена.
Ссылается на файл: SITE/core/rs/router/manager.inc.php 366
Попробовал отследить, но там все ведет к обычному exception, который запоминает extra_info.
Файл exception.tpl лежит в корне темы.
mint, nginx + php5-fpm

Повысить оценку Понизить оценку

4

Re: Страница 404

Еще проверьте, нет ли у вас _local_settings.php в корне сайта с включенной опцией DETAILED_EXCEPTION

Повысить оценку +1 Понизить оценку

Re: Страница 404

Точно, спасибо!

Повысить оценку Понизить оценку

Re: Страница 404

Добрый день.
Есть еще вопрос , как сделать, чтобы дизайн шаблона exception.tpl полностью соответствовал главной страниц (шаблону wrapper.tpl)? Если полностью скопировать и добавить шапку и футер из html.tpl,

    <head {$app->getHeadAttributes(true)}>
        {$app->meta->get()}
        <title>{$app->title->get()}</title>
        {foreach from=$app->getCss() item=css}
            {$css.params.before}
            <link {if $css.params.type !== false}type="{$css.params.type|default:"text/css"}"{/if} href="{$css.file}" {if $css.params.media!==false}media="{$css.params.media|default:"all"}"{/if} rel="{$css.params.rel|default:"stylesheet"}">
            {$css.params.after}
        {/foreach}
        <script>
            var global = {$app->getJsonJsVars()};
        </script>
        {foreach from=$app->getJs() item=js}
            {$js.params.before}
            <script type="{$js.params.type|default:"text/javascript"}" src="{$js.file}"></script>
            {$js.params.after}
        {/foreach}
        {if $app->getJsCode()!=''}
            <script language="JavaScript">{$app->getJsCode()}</script>
        {/if}
        {$app->getAnyHeadData()}

        <script type="text/javascript" src="/templates/autofashion/resource/js/bootstrap.min.js"></script>

    </head>

то не подгружаются ссылки на стили и на js файлыю Возможно что-то где-то надо еще прописать?

Повысить оценку Понизить оценку

Re: Страница 404

Дело в том, что  404 страница не оборачивается. Поэтому там конструкции addjs и addcss не работают. Вам надо самостоятельно на этой странице указать подключение JS и CSS через script и link. Для этого в шаблоне можно использовать переменные {$THEME_JS} и {$THEME_CSS} которые хранят путь к js и css файлам Вашего модуля. И указать необходимое Вам для подключения CSS и JS.

Re: Страница 404

Спасибо.

Повысить оценку Понизить оценку

Re: Страница 404

Дмитрий пишет:

Добрый день.
Есть еще вопрос , как сделать, чтобы дизайн шаблона exception.tpl полностью соответствовал главной страниц (шаблону wrapper.tpl)? Если полностью скопировать и добавить шапку и футер из html.tpl,

    <head {$app->getHeadAttributes(true)}>
        {$app->meta->get()}
        <title>{$app->title->get()}</title>
        {foreach from=$app->getCss() item=css}
            {$css.params.before}
            <link {if $css.params.type !== false}type="{$css.params.type|default:"text/css"}"{/if} href="{$css.file}" {if $css.params.media!==false}media="{$css.params.media|default:"all"}"{/if} rel="{$css.params.rel|default:"stylesheet"}">
            {$css.params.after}
        {/foreach}
        <script>
            var global = {$app->getJsonJsVars()};
        </script>
        {foreach from=$app->getJs() item=js}
            {$js.params.before}
            <script type="{$js.params.type|default:"text/javascript"}" src="{$js.file}"></script>
            {$js.params.after}
        {/foreach}
        {if $app->getJsCode()!=''}
            <script language="JavaScript">{$app->getJsCode()}</script>
        {/if}
        {$app->getAnyHeadData()}

        <script type="text/javascript" src="/templates/autofashion/resource/js/bootstrap.min.js"></script>

    </head>

то не подгружаются ссылки на стили и на js файлыю Возможно что-то где-то надо еще прописать?

Тоже решил так сделать, чтобы вместо 404 главная была.

Вопрос № 1.
Где находится шаблон главной страницы для темы Perfume?
Файлов wrapper.tpl и html.tpl в папке темы нет.

Вопрос №2.

Как указать подключение JS и CSS ?

Это нужно в шаблоне прописать
<link type="text/css" href="/templates/perfume/resource/css/960gs/reset.css?v=5" media="all" rel="stylesheet">
и т.п.

<script type="text/javascript" src="/resource/js/jquery.min.js"></script>
и т.п.

Их, наверное, можно все из исходного кода Главной страницы просто скопировать?

Повысить оценку Понизить оценку

Re: Страница 404

Тоже решил так сделать, чтобы вместо 404 главная была.

Вопрос № 1.
Где находится шаблон главной страницы для темы Perfume?
Файлов wrapper.tpl и html.tpl в папке темы нет.

Его там и не будет, т.к. это сеточный шаблон (gs960), а это значит, что HTML и блоки выводятся генератором блоков по сетке из конструктора сайта.

Т.е. там нужно вставить как эти блоки самостоятельно, если вы хотите сеточную модель, т.к. 404 отдаётся как обычный HTML.

Как указать подключение JS и CSS ?

Это нужно в шаблоне прописать
<link type="text/css" href="/templates/perfume/resource/css/960gs/reset.css?v=5" media="all" rel="stylesheet">
и т.п.

<script type="text/javascript" src="/resource/js/jquery.min.js"></script>
и т.п.

Их, наверное, можно все из исходного кода Главной страницы просто скопировать?

Да.
Можно использовать переменные для путей.
https://readyscript.ru/dev-manual/dev_s … ugins.html

{$THEME_IMG} - путь к картинкам темы
{$THEME_JS} - путь к javascript темы
{$THEME_CSS} - путь к CSS темы

Re: Страница 404

Спасибо! Хороший совет.

Повысить оценку Понизить оценку