2015-01-08 10 views
9

私はSymphony2フレームワークをインストールして自分のバンドルを作成しました。 私は私のjsとcssファイルにasseticを使用しています。symfony 2 Assets cssとjs 404の生産環境内

私のサーバ上でubuntuを実行していて、ローカルマシン上でミントを実行しています。

私はapp_dev.phpにローカルでアクセスすると、すべてのアセットが正常に機能します。

私はapp.phpにローカルでアクセスすると、すべてのアセットが正常に機能します。

は、しかし、私のサーバー上で、ルートがレンダリングされますが、私の尾prod.log iは以下のキャッチされない例外を取得すると、資産(CSS & jsが)私は404

を得る:

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

私はウェブの高低を検索しましたが、これを理解できないようです。

私はキャッシュをクリアし、assetic dumpし、資産をインストールしました。すべての権限が正しいです。

私のアプリの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' 

assetic使用しています私の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> 

任意の助けいただければ幸いです。

は、私はあなたが原因cssrewriteの問題を抱えていると思う

広告、

+0

ここに同じ問題があります。 –

答えて

1

こんにちは、ありがとうございました。

2つのオプションがあります。

これは、あなたの資産のための出力ディレクトリを指定することができ、最初のオプション

の一例です。以下の例は '/ web/bundles/yourbundle/css'を指していますassets:install --env=prodassetic: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フォルダを生成していることに言及しなければなりません。そのフォルダを取り除くには、この構文をtwigで使うことができます。

{% 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 %} 
関連する問題