1

Symfony フレームワークを学んでいますが、正しい URL をリソースに返すのに問題があります。src/Company/TestBundle/Controller/DefaultController.php ファイルでこれを使用して、新しいバンドル Company/TestBundle を作成しました。

<?php

namespace Company\TestBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller
{
    public function indexAction()
    {
        return $this->render('TestBundle:Default:index.html.twig');
    }
}

src/Company/TestBundle/Resources/views/Default/index.html.twig:

{% extends "SmallworldBundle:Default:main.html.twig" %}

{%block title %}It's a small world after all!{% endblock %}

{% block body %} It's a small world! {% endblock %}

そして src/Company/TestBundle/Resources/views/Default/main.html.twig で:

<html>
<head>
{% block stylesheets %}
<link rel = "stylesheet" href = "{{ asset('css/small.css') }}" type = "text/css" />
{% endblock %}
<title>{% block title %} {% endblock %}</title>
</head>
<body>
{%block body %}{% endblock %}
</body>
</html>

今、私は php app/console assets:install --symlink を実行しましたが、それでも、生成されたコードは、ファイルが実際にある場所である src/Company/ ではなく、「/css/small.css」にリンクしようとしていますTestBundle/Resources/public/css/small.css

これが正しい場所にリンクしていない理由を誰か説明できますか?

4

2 に答える 2

1

NoScope の回答は有効な解決策ですが、web/bundles/testbundle に強い依存関係を導入しない方がよいでしょう。

使用する必要があります...

{% block stylesheets '@CompanyTestBundle/Resources/public/css/small.css' %}
    <link rel = "stylesheet" href="{{ asset_url }}" type = "text/css" />
{% endblock %}

... 代わりは。

この方法で、assetic がアセットをインストールする方法を変更しても、正しいパスが表示されます。

于 2013-05-24T11:51:30.217 に答える