План Symfony 2 Assetic Project и управление ресурсами - PullRequest
0 голосов
/ 19 марта 2012

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

  1. У меняочень трудно получить все мои ресурсы для загрузки правильно.Я пытаюсь использовать сборку, но независимо от того, что я пытаюсь, я получаю сотни 404 не найденных ответов при загрузке страницы.Моя текущая структура каталогов приведена ниже:

  • Symfony
    • src
      • CS4750
        • PhotoChallengeBundle
          • Контроллер
          • Ресурсы
            • config
            • public
              • css
              • img
              • js
              • библиотеки
                • LibraryX
                  • css
                  • img
                  • js
            • просмотров

Самая большая проблема, с которой я сейчас сталкиваюсь, связана с изображениями в файлах CSS.Я попытался использовать

filters:
    cssrewrite: ~

, но все пути указывают на http://localhost/Symfony/web/Resources/public/img/* вместо http://localhost/Symfony/web/bundles/cs4750photochallenge/img Сначала я попытался без актива: установить веб, а затем с этим, но ни один из них, кажется, неСделать разницу.Если кто-нибудь поможет мне разобраться с этим, это будет здорово.

  1. Другая проблема, с которой я столкнулся, связана с файлом CSS, который импортирует два дополнительных файла CSS.При загрузке страницы дополнительные css-файлы также возвращают 404 ответа.

  2. В чем разница между активом: установка и актив: dump

  3. Iу меня также один из моих js-файлов возвращает ошибку 500 сервера, но я обращаюсь к ней так же, как и к остальным js-файлам, которые, кажется, работают нормально.

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

Подробнее:

Example of css files:


 /* IMPORTS ------------------------------------------------------------*/

    @import url('reset.css');
    @import url('styled-elements.css');
    /* HACKS ------------------------------------------------------------*/

    .clear {
        clear: both;
        height: 1px;
    }
    body {
        line-height: 1;
        color: #51565b;
        background: #f1f1f1 url(../img/bg/patterns/noise.png);
        font-family: Arial, Helvetica, sans-serif;
        font-size: 100%;
}

Config_dev.yml:

 imports:
    - { resource: config.yml }

framework:
    router:   { resource: "%kernel.root_dir%/config/routing_dev.yml" }
    profiler: { only_exceptions: false }

web_profiler:
    toolbar: true
    intercept_redirects: false

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
        firephp:
            type:  firephp
            level: info

assetic:
    use_controller: true
    filters:
        cssrewrite: ~

Шаблон:

<!DOCTYPE  html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Weekly Photo Challenge</title>
        <!-- CSS -->
        {% stylesheets
            '@CS4750PhotoChallengeBundle/Resources/public/css/*'
            '@CS4750PhotoChallengeBundle/Resources/public/libraries/fancybox/css/*'

            filter='cssrewrite'
        %}
            <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}" />
        {% endstylesheets %}

        <!-- JAVASCRIPT -->
        {% javascripts
            '@CS4750PhotoChallengeBundle/Resources/public/js/jquery-1.5.1.min.js'
            '@CS4750PhotoChallengeBundle/Resources/public/js/*'
            '@CS4750PhotoChallengeBundle/Resources/public/js/ajax/*'
            '@CS4750PhotoChallengeBundle/Resources/public/libraries/fancybox/js/*'

        %}
            <script type="text/javascript" src="{{ asset_url }}"></script>
        {% endjavascripts %}

Ответы [ 3 ]

2 голосов
/ 09 июня 2012

Я создал небольшой пакет FkrCssURLRewriteBundle , который решает эту проблему.Посмотрите на Readme, как это работает.Может быть, это интересно некоторым из вас.

1 голос
/ 23 мая 2012

Фильтр cssrewrite пока не совместим с нотацией @bundle. См .: Путь ресурсов в файлах CSS в Symfony 2

0 голосов
/ 19 марта 2012

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

Вы должны использовать фильтр в файле ветки:

{% stylesheets '@PhotoChallengeBundle/Resources/public/css/*' filter='cssrewrite' %}
    <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}" />
{% endstylesheets %}

Вы можете проверить запись Assetic в кулинарной книге для подробных инструкций.

...