Laravel Blade 渲染 <head> 里面的内容 <body>

Laravel Blade rendering <head> contents inside <body>

我需要一点帮助...

当我尝试在 blade 中渲染一个简单的模板时,我的渲染效果很差 html。

我在 views.admin 目录中有 master.blade.phphome.blade.php

<!-- master.blade.php -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8"/>
  <title>Test Title</title>
</head>
<body>
  Content
</body>
</html>

<!-- home.blade.php -->
@extends('admin.master')

当我调用 return view("admin.home"); 时呈现的 HTML 如下所示:

<html lang="en">
<head></head>
<body>
<meta charset="utf-8">
<title>Test Title</title>
Content
</body></html>

知道发生了什么事吗?

谢谢。

通常出现“&#65279;”字符的情况是使用非UTF-8编码的文本编辑器引入或以不同方式引入。我的建议是使用 Sublime Text or Notepad++ to create fresh versions of each of these three documents. This usually happens because of a copy/paste without realizing it or using a text editor that has "extra formatting" that you cannot see (e.g. Word). The character is ZERO WIDTH NO-BREAK SPACE (you can see more information here 之类的东西。因此,这不是 Laravel Blade 问题,而是您使用的任何文本编辑器都引入了额外的空白类型字符。

我只花了大约一个小时试图解决这个问题,然后决定制作一个新的 laravel 应用程序来粘贴新文件,直到它被修复。原来我的问题是因为我的一个配置文件中插入了一个随机字符(可能是在尝试输入 url 之前意识到我的浏览器不是活动的 window)。因此,如果有人在修复他们的 blade 模板后似乎无法弄清楚为什么它不起作用,请查看此内容。

我知道线程是旧的,但我今天遇到了这个问题,删除 BOM 帮助我修复了它。一个提示 - 如果您使用的是 PHPStorm,则可以选择删除 BOM,而无需复制文件并使用另一个文件编辑器保存。只需右键单击该文件,然后按 "Remove BOM"。像魅力一样工作!

对我来说,这是由于添加了;到 @extends('layouts.app')

结束

我知道这是一个老问题,但为了像我一样遇到同样问题并来到此页面的人,我想分享解决我问题的方法。

您可能会在 laravel's layout documents 中找到,说明主模板 应该像这样使用 :

@extends('layouts.master')
 
@section('title', 'Page Title')

@section('sidebar')
    @@parent
 
    <p>This is appended to the master sidebar.</p>
@stop
 
@section('content')
    <p>This is my body content.</p>
@stop 

我的问题通过在 @section('content') 末尾添加 @stop 解决了。希望对您有所帮助。