Laravel Blade 渲染 <head> 里面的内容 <body>
Laravel Blade rendering <head> contents inside <body>
我需要一点帮助...
当我尝试在 blade 中渲染一个简单的模板时,我的渲染效果很差 html。
我在 views.admin
目录中有 master.blade.php
和 home.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>
知道发生了什么事吗?
谢谢。
通常出现“
”字符的情况是使用非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
解决了。希望对您有所帮助。
我需要一点帮助...
当我尝试在 blade 中渲染一个简单的模板时,我的渲染效果很差 html。
我在 views.admin
目录中有 master.blade.php
和 home.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>
知道发生了什么事吗?
谢谢。
通常出现“
”字符的情况是使用非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
解决了。希望对您有所帮助。