1

サブドメインを Symfony2 の特定のバンドルにルーティングしようとしています。これが私が持っているものです:

ホストにローカル ドメインを追加しました。

127.0.0.1    todolist.lc
127.0.0.1    manager.todolist.lc

すべてのサブドメインを Symfony インストールに転送する仮想ホストを作成しました。

<VirtualHost 127.0.0.1>
 ServerName todolist.lc
 ServerAlias *.todolist.lc
 DirectoryIndex app_dev.php
 DocumentRoot "C:\xampp\htdocs\todolist\web"
</VirtualHost>

サブドメイン manager.todolist.lc を処理する新しいバンドルを作成しました。

ManagerBundle

今、manager.todolist.lc へのルートを設定しようとしています:

frontend:
    resource: "@FrontendBundle/Controller/"
    type:     annotation
    prefix:   /

backend:
    resource: "@BackendBundle/Controller/"
    type:     annotation
    prefix:   /api

manager:
    host:     manager.todolist.lc
    resource: "@ManagerBundle/Controller/"
    type:     annotation
    prefix:   /

マネージャールートを追加した後、そこにあるすべてのルートで FileLoaderImportCircularReferenceException を取得します。

私も接頭辞を使用しようとしましたが、これも例外を与えます:

manager:
    resource: "@ManagerBundle/Controller/"
    type:     annotation
    prefix:   /manager

何が欠けているのかわかりません。私は何を間違っていますか?さらに情報が必要な場合は、コメントで質問してください。提供します。

4

1 に答える 1

0

Ok。これが私が見逃していたものです:

1. バンドルを AppKernel にロードするのを忘れていました

明らかに、これは非常に重要です。

new FrontendBundle\FrontendBundle(),
new BackendBundle\BackendBundle(),
new ManagerBundle\ManagerBundle(),

2.サブドメインはメインドメインの前に宣言する必要があります

バンドルを AppKernel にロードした後も、アプリケーションは引き続き FrontController にルーティングされます。ルートの順序を変更することでこれを解決しました:

manager:
    host:     manager.todolist.lc
    resource: "@ManagerBundle/Controller/"
    type:     annotation
    prefix:   /

frontend:
    resource: "@FrontendBundle/Controller/"
    type:     annotation
    prefix:   /

backend:
    resource: "@BackendBundle/Controller/"
    type:     annotation
    prefix:   /api

ルートの順序を変更すると、manager.todolist.lc と todolist.lc の両方が機能しました。

于 2015-04-17T13:34:58.487 に答える