Конфигурация Catalyst, когда на статические данные ссылается шаблон HTML - PullRequest
0 голосов
/ 07 декабря 2011

мы хотим построить сайт HABJ (*), начиная с некоторых HTML-демонстрационных страниц, которые были созданы извне: lorem ipsum.Я дал этим необработанным HTML-файлам расширение .tt, поместил их в ... root / static / tt / page-th..tt и т. Д., Настроил приложение для

 HABJ/View/TT.pm:11:    INCLUDE_PATH => [ HABJ->path_to('root','tt') ]

, и я побилнемного пытается получить ссылки на css, images, js для обработки статической конфигурацией

  \__PACKAGE__->config(
           static => {
               dirs => [
                   'static',
                   qr/^(images|js|css)/,
               ],
           }
       );

 \__PACKAGE__->config(
           static => {
               include_path => [
                   __PACKAGE__->config->{root},
                   '/root/static',
                   '/root/static/css',
                   '/root/static/js',
                   '/root/static/images',
               ],
           },
       );

, но все ссылки на css и изображения 404-ые

 [debug] "GET" request for "css/all.css" from "xx.xx.xx.xx"
 [debug] Path is "/"
 [debug] Arguments are "css/all.css"
 [debug] Response Code: 404; Content-Type: text/html; charset=utf-8; Content-Length: 14


 [debug] "GET" request for "images/ico15.gif" from "xx.xx.xx.xx"
 [debug] Path is "/"
 [debug] Arguments are "images/ico15.gif"
 [debug] Response Code: 404; Content-Type: text/html; charset=utf-8; Content-Length: 14

под Apacheон работает нормально, с FastCGI, настроенным таким образом

    Alias /static /usr/local/lib/Catalyst/HABJ/root/static
    Alias /css    /usr/local/lib/Catalyst/HABJ/root/static/css
    Alias /images /usr/local/lib/Catalyst/HABJ/root/static/images
    Alias /js     /usr/local/lib/Catalyst/HABJ/root/static/js
    Alias /       /usr/local/lib/Catalyst/HABJ/script/habj_fastcgi.pl/

Теперь я «знаю», что если бы мы сами создавали файлы tt с нуля, это, вероятно, было бы не так.Но может кто-нибудь сказать мне, что мне нужно, чтобы сервер Cat справился с этим?

спасибо ...

(*) Я знаю, о чем вы думаете.Не ходи туда.

1 Ответ

0 голосов
/ 09 декабря 2011

Точно так же, как ваши настройки Apache / FastCGI, ваш include_path должен быть полностью квалифицирован, то есть:

include_path => [
       '/path/to/root',
       ...
],

Предполагая, что статический каталог находится непосредственно под корнем, поэтому запрос для /static/my.css преобразуется в /path/to/root/static/my.css

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

...