如何在 laravel 5.8 中修复 trix 编辑器
How to fix trix editor in laravel 5.8
我正在尝试在表单中添加 trix 编辑器。它出现但工具栏被禁用它不工作。经过一些研究,我发现它在我的布局文件的 header 中,所以我将它移动到 body 的末尾并删除了 "defer",现在 trix 编辑器消失了。
布局文件
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}"></script>
@yield('scripts')
</body>
</html>
我想要 trix 编辑器的字段
<div class="form-group">
<label for="content">Content</label>
<input id="content" type="hidden" name="content">
<trix-editor input="content"></trix-editor>
</div>
trix js 和 css
@section('scripts')
<script src="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.js"></script>
@endsection
@section('css')
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.css">
@endsection
我在这里制作了演示 trix 编辑器,它在 laravel 5.8.14 v
中运行良好
<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel</title>
<link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.css">
<style>
html, body {
background-color: #fff;
color: #636b6f;
font-family: 'Nunito', sans-serif;
font-weight: 200;
height: 100vh;
margin: 0;
}
.full-height {
height: 100vh;
}
.flex-center {
align-items: center;
display: flex;
justify-content: center;
}
.position-ref {
position: relative;
}
.top-right {
position: absolute;
right: 10px;
top: 18px;
}
.content {
text-align: center;
}
.title {
font-size: 84px;
}
.links > a {
color: #636b6f;
padding: 0 25px;
font-size: 13px;
font-weight: 600;
letter-spacing: .1rem;
text-decoration: none;
text-transform: uppercase;
}
.m-b-md {
margin-bottom: 30px;
}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
@if (Route::has('login'))
<div class="top-right links">
@auth
<a href="{{ url('/home') }}">Home</a>
@else
<a href="{{ route('login') }}">Login</a>
@if (Route::has('register'))
<a href="{{ route('register') }}">Register</a>
@endif
@endauth
</div>
@endif
<div class="content">
<div class="title m-b-md">
Laravel
</div>
<trix-editor input="content"></trix-editor>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.0/jquery.min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.js"></script>
</body>
</html>
您是否忘记添加 jquery?
您在 section('scripts')
中提到的 trix 代码的 link,而不是包含在 'scripts' 部分中。直接将 link 粘贴到 html 的主要 HEAD 部分,可能在 layouts.app.
或者你也可以做同样的事情,只是改变一些代码,比如:
- 在您的 html 头部部分,将 yield 添加到其他提到的 SCRIPT 标签下方,例如
@YIELD('CSCRIPTS')
,确保您在 yield 中使用新名称。
- 在html的head部分,你还会看到其他的SCRIPT标签,如果有DEFER就去掉。
- 最后,转到您的 SECTION 所属的 blade 并将其更改为
@SECTION('CSCRIPTS')
。
- 效果很好。
但您还会看到其他脚本标记,并删除 DEFER 关键字。
其他保持原样,完美运行
--> 作曲家需要 te7a-houdini/laravel-trix
--> php artisan vendor:publish --provider="Te7aHoudini\LaravelTrix\LaravelTrixServiceProvider"
--> php artisan 迁移
在您的页面中使用
<html>
<head>
@trixassets
</head>
<body>
<form method="POST" action="route('article.store')">
@csrf
@trix(\App\Article::class, 'content')
<input type="submit">
</form>
</body>
</html>
我正在尝试在表单中添加 trix 编辑器。它出现但工具栏被禁用它不工作。经过一些研究,我发现它在我的布局文件的 header 中,所以我将它移动到 body 的末尾并删除了 "defer",现在 trix 编辑器消失了。
布局文件
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}"></script>
@yield('scripts')
</body>
</html>
我想要 trix 编辑器的字段
<div class="form-group">
<label for="content">Content</label>
<input id="content" type="hidden" name="content">
<trix-editor input="content"></trix-editor>
</div>
trix js 和 css
@section('scripts')
<script src="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.js"></script>
@endsection
@section('css')
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.css">
@endsection
我在这里制作了演示 trix 编辑器,它在 laravel 5.8.14 v
中运行良好<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel</title>
<link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.css">
<style>
html, body {
background-color: #fff;
color: #636b6f;
font-family: 'Nunito', sans-serif;
font-weight: 200;
height: 100vh;
margin: 0;
}
.full-height {
height: 100vh;
}
.flex-center {
align-items: center;
display: flex;
justify-content: center;
}
.position-ref {
position: relative;
}
.top-right {
position: absolute;
right: 10px;
top: 18px;
}
.content {
text-align: center;
}
.title {
font-size: 84px;
}
.links > a {
color: #636b6f;
padding: 0 25px;
font-size: 13px;
font-weight: 600;
letter-spacing: .1rem;
text-decoration: none;
text-transform: uppercase;
}
.m-b-md {
margin-bottom: 30px;
}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
@if (Route::has('login'))
<div class="top-right links">
@auth
<a href="{{ url('/home') }}">Home</a>
@else
<a href="{{ route('login') }}">Login</a>
@if (Route::has('register'))
<a href="{{ route('register') }}">Register</a>
@endif
@endauth
</div>
@endif
<div class="content">
<div class="title m-b-md">
Laravel
</div>
<trix-editor input="content"></trix-editor>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.0/jquery.min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.js"></script>
</body>
</html>
您是否忘记添加 jquery?
您在 section('scripts')
中提到的 trix 代码的 link,而不是包含在 'scripts' 部分中。直接将 link 粘贴到 html 的主要 HEAD 部分,可能在 layouts.app.
或者你也可以做同样的事情,只是改变一些代码,比如:
- 在您的 html 头部部分,将 yield 添加到其他提到的 SCRIPT 标签下方,例如
@YIELD('CSCRIPTS')
,确保您在 yield 中使用新名称。 - 在html的head部分,你还会看到其他的SCRIPT标签,如果有DEFER就去掉。
- 最后,转到您的 SECTION 所属的 blade 并将其更改为
@SECTION('CSCRIPTS')
。 - 效果很好。
但您还会看到其他脚本标记,并删除 DEFER 关键字。 其他保持原样,完美运行
--> 作曲家需要 te7a-houdini/laravel-trix
--> php artisan vendor:publish --provider="Te7aHoudini\LaravelTrix\LaravelTrixServiceProvider"
--> php artisan 迁移
在您的页面中使用
<html>
<head>
@trixassets
</head>
<body>
<form method="POST" action="route('article.store')">
@csrf
@trix(\App\Article::class, 'content')
<input type="submit">
</form>
</body>
</html>