含めようとしています
<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>
この問題を解決するにはどうすればよいですか?
以下のコマンドを実行します。
yarn add --dev @symfony/webpack-encore
yarn add webpack-notifier --dev
yarn encore dev
Manifest.jsonファイルを生成します
Json_manifest_pathを使用しないことでこの問題を解決しました:〜
json_manifest_pathの前に「#」を追加し、「assets:」の後に「〜」を追加してコメントアウトします
framework:
assets: ~
#json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
yarn encore dev-server --hot
manifest.jsonファイルを作成します
インストールしてみてくださいAssets Bundle
:
composer require symfony/asset
質問には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を発見した私にとって、アセット機能やその他の設定を必要としないのは素晴らしいことです!
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"、 "...": "..."}