如何使用vite将tailwindcss样式应用于Laravel9中的电子邮件

我无法在邮件刀片中制作工作风格。

我无法在邮件刀片中制作工作风格。

最终目标是为邮件布局。到现在为止,为了测试 puposes,我有:

发送邮件的控制器

邮件组件

可邮寄的类

电子邮件的布局,作为 guest.blade.php jetstream 文件的副本

一个特定的电子邮件刀片文件,即要在 previus 布局中添加的内容,是 welcome.blade.php jetstream 文件的副本

app\ Http\ Controllers\ TestController.php

<?php
namespace App\Http\Controllers;
use App\Mail\TestingMail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
class TestController extends Controller
{
    public function __invoke(Request $request)
    {
        $result = Mail::to($request->user())
                ->send(new TestingMail());
        return view('welcome');
     }
}

app\ View\ Components\ MailLayout.php

<?php
namespace App\View\Components;
use Illuminate\View\Component;
class MailLayout extends Component
{
    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }
    /**
     * Get the view / contents that represent the component.
     *
     * @return \Illuminate\Contracts\View\View|\Closure|string
     */
    public function render()
    {
        return view('layouts.mail');
    }
}

app\ Mail\ TestingMail.php

<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class TestingMail extends Mailable
{
    use Queueable, SerializesModels;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }
    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('mails.general');
    }
}

资源\ 视图\ 布局\ mail.blade.php

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta cht="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="csrf-token" content="{{ csrf_token() }}">
        <title>{{ config('app.name', 'Laravel') }}</title>
        <!-- Fonts -->
        <link rel="stylesheet" href="https://fonts.bunny.net/css2?family=Nunito:wght@400;600;700&display=swap">
        <!-- Scripts -->
        @vite(['resources/css/app.scss', 'resources/js/app.js'])
    </head>
    <body>
        <div class="font-sans text-gray-900 antialiased">
            {{ $slot }}
        </div>
    </body>
</html>

resources\ views\ mails\ general.blade.php

<x-mail-layout>
    <x-slot name="header">
        <h2 class="font-semibold text-xl text-gray-800 leading-tight">
            {{ __('Dashboard') }}
        </h2>
    </x-slot>
    <div class="py-12">
        <div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
            <div class="bg-white overflow-hidden -xl sm:rounded-lg">
                <x-jet-welcome />
            </div>
        </div>
    </div>
</x-mail-layout>

我收到没有样式的邮件。我发现的唯一帮助是这个链接https://ralphjsmit.com/tailwind-css-multiple-configurations-laravel-mix,但这是为 laravel mix 写的,我不知道将这个 webpack.mix.js 迁移到 vite。

任何帮助或方向将 apreciated,谢谢。

编辑我最终使它工作,结合 @ Jaap 的答案和其他包:https://github.com/fedeisas/laravel-mail-css-inliner

https://github.com/motomedialab/laravel-vite-helper

vite helper 并不理想,因为它在 npm run dev 运行时不起作用,但对我来说已经足够了。

1

对于电子邮件,您希望内联样式。我不认为这是 Vite,Tailwind 或 Blade 开箱即用的功能。

但是,有一个包似乎可以解决您的问题:https://github.com/fedeisas/laravel-mail-css-inliner

以前从未尝试过,但似乎很活跃。但是,自动内联的做法对于电子邮件来说很普遍,因此 Google 会对此进行搜索。您可能会找到一些适合您需求的软件包。

0

您必须首先构建 vite 文件(npm run build),然后将它们包含在邮件模板中。或者您可以将它们内联在一个大的<style>块中。

如果你想要一个更好的例子,看看welcome.blade.php如何在新的 Laravel 安装中做到这一点。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(544)
在 Maxima中求解分段函数
上一篇
HTML中id属性的有效值是什么
下一篇

相关推荐

  • css参考手册:标题

    CSS参考手册是一本关于CSS语言的参考书,由W3C组织出版,包含了CSS语言的完整语法、属性、值和案例等。它提供了一个完整的CSS语言参考,可以帮助开发者快速学习和使用CSS语言,从而更好地创建网页。…

    2023-06-29 01:40:51
    0 41 73
  • css登录界面模板代码:登录你的账号,开启新的旅程

    CSS登录界面模板代码是一种使用CSS来制作登录界面的代码,它可以帮助开发者快速制作出美观且易于使用的登录界面,以下是一个简单的CSS登录界面模板代码:…

    2023-05-06 06:17:54
    0 24 45
  • html引用css文件:My Webpage Welcome to My Webpage!

    示例示例在html文件中引用css文件,可以使用标签,代码示例如下:其中,rel属性表示关系,type属性表示文件的类型,href属性表示css文件的路径。…

    2023-06-21 12:33:03
    0 12 69
  • css鼠标移入移出:标题

    CSS鼠标移入移出,可以使用CSS中的:hover伪类来实现,代码如下:上面的代码表示,当鼠标移入.example元素时,将其文字颜色改为白色。…

    2023-04-28 12:13:20
    0 84 68
  • css自动换行:标题

    CSS自动换行可以使用CSS的word-wrap属性来实现,代码如下:该属性有两个可选值:…

    2023-11-21 11:03:53
    0 22 47
  • css布局技巧:和3个段落 标题 段落1 段落2 段落3

    CSS布局技巧是指使用CSS来实现页面布局的方法。这些技巧可以帮助开发人员快速实现页面布局,并且可以更好地控制页面的外观和行为。…

    2023-04-17 01:31:53
    0 74 61
  • css 超出自动换行:这是一个标题

    css 超出自动换行,可以使用 css 的 word-wrap 属性来实现,该属性允许长单词或 URL 地址换行到下一行。代码如下:…

    2023-04-08 01:41:59
    0 78 66
  • css出现滚动条控制页面内容的浏览

    当页面内容超出浏览器窗口的大小,会出现滚动条,可以通过CSS来控制。例如:…

    2023-06-05 08:29:43
    0 62 33

发表评论

登录 后才能评论

评论列表(22条)