Symfony Error: "An exception has been thrown during the rendering of a template"

42,967

Solution 1

Execute the below commands:

yarn add --dev @symfony/webpack-encore

yarn add webpack-notifier --dev

yarn encore dev

It will generate the manifest.json file

Solution 2

I have resolved this problem by not using json_manifest_path: ~

comment out the json_manifest_path by adding '#' in front of it and add '~' after 'assets:'

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

Solution 3

yarn encore dev-server --hot creates the manifest.json file

Solution 4

manifest.json is new in Symfony 3.3.

So, you should have this lines in your config file :

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

If manifest.json isn't exists, you should create it, like this :

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

Solution 5

I have resolved this problem by not using json_manifest_path: ~

comment out the json_manifest_path by adding # in front of it and add ~ after assets:

framework:
    assets: ~
        #json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
Share:
42,967
Bijaya Basnet
Author by

Bijaya Basnet

Updated on April 23, 2021

Comments

  • Bijaya Basnet
    Bijaya Basnet about 3 years

    I am trying to include

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

    in my twig file and render it. But it gives me Uncaught PHP Exception Twig_Error_Runtime:

    "An exception has been thrown during the rendering of a template ("Asset manifest file "/../public/build/manifest.json" does not exist.")

    It does work when i use

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

    . Following is my controller:

        <?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');
        }
    }
    

    Following is my twig template:

    <!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>
    

    How can i resolve this issue?