質問

symfony2は、実行しようとするときに「get /」のルートが見つかりません http://localhost/app_dev.php, 、しかし、このURLは機能します: http://localhost/app_dev.php/hello/symfony. 。 AcmedeMobundleを削除し、Symfony2チュートリアルから例のバンドルを実行しようとしています。なにが問題ですか ?

app/config/routing.yml:

ShopMyShopBundle:
resource: "@ShopMyShopBundle/Resources/config/routing.yml"
prefix:   /

app/config/routing_dev.yml:

_assetic:
resource: .
type:     assetic

_wdt:
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
prefix:   /_wdt

_profiler:
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
prefix:   /_profiler

_configurator:
resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
prefix:   /_configurator

_main:
resource: routing.yml

src/shop/myshopbundle/resources/config/routing.yml:

ShopMyShopBundle_homepage:
pattern:  /hello/{name}
defaults: { _controller: ShopMyShopBundle:Main:index }
requirements:
    _method:  GET
役に立ちましたか?

解決

問題は、あなたがのルートを持っていないことです /. 。これに定義を変更します:

ShopMyShopBundle_homepage:
    pattern:  /
    defaults: { _controller: ShopMyShopBundle:Main:index }
    requirements:
        _method:  GET

他のヒント

上記の回答はそれぞれ間違っています。それぞれ、デモコンテンツ製品を見るのに問題がある理由に答えていません。

これが正しい答えです:あなたの「prod」をクリアする-cache:

php app/console cache:clear --env prod

私のためのこの仕事:

cache:clear --env=prod

PHP 5.5でSymfony 2.3を使用し、組み込みのサーバーを使用して

app/console server:run

次のようなものを出力するはずです。

Server running on http://127.0.0.1:8000
Quit the server with CONTROL-C.

その後、行きます http://127.0.0.1:8000/app_dev.php/app/example

これにより、デフォルトが得られるはずです。SRC/AppBundle/Controller/DefaultController.phpを表示することで、デフォルトルートを見つけることもできます。

プレフィックスは、URLルーティングのプレフィックスです。 '/'に等しい場合、プレフィックスがないことを意味します。次に、「 /helloで開始する必要がある」パターンでルートを定義しました。

'/'のルートを作成するには、これらの行をSRC/SHOP/MYSHOPBUNDLE/RESOASHN/CONFIG/ROUTING.ymlに追加する必要があります。

ShopMyShopBundle_homepage:
    pattern:  /
    defaults: { _controller: ShopMyShopBundle:Main:index }

私はこの間違いを犯した人だけだったかもしれませんが、多分そうではないでしょう。

注釈用の形式 ルートがスラッシュから始めなければならない前のコメントで 2 アスタリスク。私はスラッシュの間違いを犯していて、1つのアスタリスクしかありませんでした。

私のルートは次のように見えました:

/*
 * @Route("/",name="homepage")
 */
public function indexAction(Request $request) {
    return $this->render('default/index.html.twig');
}

それがこれだったはずだったとき

/**
 * @Route("/",name="homepage")
 */
public function indexAction(Request $request) {
    return $this->render('default/base.html.twig');
}

また、そのエラーを試しましたが、hello/nameが必要なパスであるため、/hello/hello/Anyの名前だけで正しく入手しました

例:ただ置く代わりに http://localhost/app_dev.php

このように置いてください http://localhost/name_of_your_project/web/app_dev.php/hello/ai

こんにちはaiが表示されます。私はあなたの質問に答えることを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top