web-dev-qa-db-ja.com

Symfonyエラー:「テンプレートのレンダリング中に例外がスローされました」

含めようとしています

<link href="{{ asset('css/mystyle.css') }}"
      rel="stylesheet"/> 

私のtwigファイルでレンダリングします。しかし、それは私に与えますncaught PHP Exception Twig_Error_Runtime:

「テンプレートのレンダリング中に例外がスローされました(「アセットマニフェストファイル "/../public/build/manifest.json"は存在しません。」)

使用すると動作します

link href="css/mystyle.css"
          rel="stylesheet"/>

。私のコントローラーは次のとおりです。

    <?php

namespace App\Controller;

use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;

class WelcomeController extends AbstractController
{
    /**
     * @Route("/", name="welcome")
     */
    public function index()
    {
        return $this->render('welcome/index.html.twig');
    }
}

以下は私のtwigテンプレートです:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Let's Explore Symfony 4</title>

    <!-- Bootstrap core CSS -->
    <link rel="stylesheet"
          href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css"
          integrity="sha384-Zug+QiDoJOrZ5t4lssLdxGhVrurbmBWopoEl+M6BdEfwnCJZtKxi1KgxUyJq13dy"
          crossorigin="anonymous">

    <link href="{{ asset('css/mystyle.css') }}"
          rel="stylesheet"/>

</head>

<body>
<header>
    <nav class="navbar navbar-expand-sm navbar-dark bg-dark">
        <div class="container">

            <a class="navbar-brand" href="#">Home</a>

            <div class="collapse navbar-collapse">
                <ul class="navbar-nav mr-auto">
                    <li class="nav-item">
                        <a class="nav-link" href="#">Hello Page</a>
                    </li>
                </ul>
            </div>
        </div>

    </nav>
</header>

<main role="main" class="container main">
    <div>
        <h1>Let's Explore Symfony 4</h1>
        <p class="lead">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras rutrum sapien mauris, venenatis
            facilisis neque tincidunt vel. Maecenas vel felis vel turpis scelerisque eleifend. Fusce nec purus egestas,
            efficitur nisi ac, ultrices nulla. Pellentesque eu mollis tortor, in mollis nisl. Maecenas rhoncus quam non
            lacinia mollis.</p>
    </div>
</main>
</body>
</html>

この問題を解決するにはどうすればよいですか?

8
Bijaya Basnet

以下のコマンドを実行します。

yarn add --dev @symfony/webpack-encore

yarn add webpack-notifier --dev

yarn encore dev

Manifest.jsonファイルを生成します

9
Sarath Kumar

Json_manifest_pathを使用しないことでこの問題を解決しました:〜

json_manifest_pathの前に「#」を追加し、「assets:」の後に「〜」を追加してコメントアウトします

framework:
    assets: ~
        #json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
3
Ham Dong Kyun

yarn encore dev-server --hot manifest.jsonファイルを作成します

1
nadjib chiheb

インストールしてみてくださいAssets Bundle

composer require symfony/asset
0

質問にはSymfony4!というタグが付いていることに注意してください。

Navbar、faviconにロゴを追加するのと同じ問題があります…

Symfony4には、appディレクトリがないため、app/config/config.yml! Symfony4では、webディレクトリはもう存在しませんが、新しいディレクトリがありますpublic

@Bijayaが書いたように、hrefまたはsrcアドレスをパブリックに指定するだけです

私の場合、ロゴがあります:myProjectName/public/logo_mom.png

私のコントローラーには次のものがあります:

/**
 * @Route("/", name="home")
 */
public function home() {
    return $this->render('blog/home.html.twig', [
        'title' => "Bienvenue",
        'logo_path' => "logo_mom.png",
        'logo_alt' => "logo alt description",
    ]);
}

and myhome.html.twig

{% block body %}
    <h1>{{ title }}</h1>
    <img src={{ logo_path }} alt={{ logo_alt}}>

そして、私のtemplate/base.html.twig

<link rel="icon" type="image/x-icon" href="favicon.ico" />

Symfonyの以前のバージョンの知識がなくてもSymfony4を発見した私にとって、アセット機能やその他の設定を必要としないのは素晴らしいことです!

0
bcag2

manifest.jsonはSymfony 3.3で新しく追加されました。

したがって、設定ファイルに次の行を含める必要があります。

# app/config/config.yml
framework:
    # ...
    assets:
        json_manifest_path: '%kernel.root_dir%/../web/build/manifest.json'

Manifest.jsonが存在しない場合は、次のように作成する必要があります。

{"css/app.css": "build/css/mystyle.b916426ea1d10021f3f17ce8031f93c2.css"、 "...": "..."}

0
Allan