Symfony 2 Assetic CSS и JS 404 в производственной среде

Я установил платформу Symphony2 и создал свой собственный пакет.
Я использую сборку для моих файлов js и css.

Я использую Ubuntu на моем сервере и mint на моей локальной машине.

Когда я получаю доступ к app_dev.php локально, все ресурсы работают нормально.

Когда я получаю доступ к app.php локально, все ресурсы работают нормально.

Однако на моем сервере, маршрут отображается, но активы & JS) я получаю 404.

Когда я пишу prod.log, я получаю необнаруженное исключение ниже:

 PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /admin/css/875a243.css""

Я искал в Интернете все выше и ниже, и я не могу понять это.

Я очистил кеш, сбросил сборку, установил активы, все разрешения правильные.

Конфигурация моего приложения routing.yml:

    brs:
resource: "@BrsAdminBundle/Resources/config/routing.yml"prefix: /

мой комплектация routing.yml

admin:
path: /admin/
defaults: { _controller: BrsAdminBundle:Admin:index }

мой конфиг приложения:

imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: assets.yml }

framework:
#esi:             ~
#translator:      { fallback: "%locale%" }
secret:          "%secret%"router:
resource: "%kernel.root_dir%/config/routing.yml"strict_requirements: ~
form:            ~
csrf_protection: ~
validation:      { enable_annotations: true }
templating:
engines: ['twig']
#assets_version: SomeVersionScheme
default_locale:  "%locale%"trusted_proxies: ~
session:         ~
fragments:       ~
http_method_override: true

# Twig Configuration
twig:
debug:            "%kernel.debug%"strict_variables: "%kernel.debug%"
# Assetic Configuration
assetic:
debug:          "%kernel.debug%"use_controller: false
bundles:        [ ]
#java: /usr/bin/java
filters:
cssrewrite: ~
#closure:
#    jar: "%kernel.root_dir%/Resources/java/compiler.jar"#yui_css:
#    jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
# Doctrine Configuration
doctrine:
dbal:
driver:   "%database_driver%"host:     "%database_host%"port:     "%database_port%"dbname:   "%database_name%"user:     "%database_user%"password: "%database_password%"charset:  UTF8
# if using pdo_sqlite as your database driver:
#   1. add the path in parameters.yml
#     e.g. database_path: "%kernel.root_dir%/data/data.db3"#   2. Uncomment database_path in parameters.yml.dist
#   3. Uncomment next line:
#     path:     "%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"auto_mapping: true

# Swiftmailer Configuration
swiftmailer:
transport: "%mailer_transport%"host:      "%mailer_host%"username:  "%mailer_user%"password:  "%mailer_password%"spool:     { type: memory }

моя конфигурация asset.yml:

assetic:
assets:
bootstrap_js:
inputs:
- '%Kernel.root_dir%/Resources/public/js/jquery-2.1.3.min.js'
- '%Kernel.root_dir%/Resources/public/js/bootstrap.min.js'
bootstrap_css:
inputs:
- '%Kernel.root_dir%/Resources/public/css/bootstrap.min.css'
- '%Kernel.root_dir%/Resources/public/css/bootstrap-theme.min.css'
admin_css:
inputs:
- '@BrsAdminBundle/Resources/public/css/styles.css'

мой base.html.twig, который использует сборку:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>{% block title %}BankRoll Supply{% endblock %}</title>
{% block stylesheets %}
{% stylesheets '@bootstrap_css' '@admin_css' %}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
</head>
<body>
{% block body %}{% endblock %}
{% block javascripts %}
{% javascripts '@bootstrap_js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
</body>
</html>

Любая помощь будет принята с благодарностью.

Спасибо,

Объявление

9

Решение

Привет, я думаю, что у вас есть проблемы из-за cssrewrite.

У вас есть два варианта;

Это пример первого варианта

Вы можете указать выходной каталог для ваших активов. Пример ниже указывает на ‘/ web / bundles / yourbundle / css’ assets:install --env=prod а также assetic:dump --env=prod и я думаю, что ты хороший идти.

{% stylesheets
'@admin_css'
output='bundles/yourbundle/css/admin_style.css'
%}
<link href="{{ asset_url }}?{{ AssetVersion }}" rel="stylesheet" type="text/css">
{% endstylesheets %}

Также я должен отметить, что когда вы определяете свои активы в asset.yml, assetic:dump генерирует assets папка в вашем каталоге общих ресурсов, которая вам не нужна в этом случае. Чтобы избавиться от этой папки, вы можете использовать этот синтаксис в ветке;

 {% stylesheets
'@YourBundle/Resources/public/css/admin.css'
output='bundles/yourbundle/css/admin_style.css'
%}
<link href="{{ asset_url }}?{{ AssetVersion }}" rel="stylesheet" type="text/css">
{% endstylesheets %}
1

Другие решения

Других решений пока нет …