Flowbite не работает с инерционным приложением Laravel

В настоящее время я использую Laravel версии 10 вместе с Vite, Tailwind и Inertia.js для своего проекта. Раньше, когда я не использовал Inertia.js, я мог установить и использовать Flowbite в своем проекте, используя команду «npm install flowbite» и импортируя его с оператором «import 'flowbite';» в моем файле app.js. Однако я столкнулся с проблемой, когда Flowbite больше не работает с тех пор, как я начал использовать Inertia.js в Laravel.

Не могли бы вы помочь мне в решении этой проблемы?

Вот мой код App.js:

`import './bootstrap';
import '../css/app.css';

import { createApp, h } from 'vue';
import { createInertiaApp } from '@inertiajs/vue3';
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers';
import { ZiggyVue } from '../../vendor/tightenco/ziggy/dist/vue.m';
import 'flowbite';
const appName = window.document.getElementsByTagName('title')[0]?.innerText || 'Laravel';

createInertiaApp({
    title: (title) => `${title} - ${appName}`,
    resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')),
    setup({ el, App, props, plugin }) {
        return createApp({ render: () => h(App, props) })
            .use(plugin)
            .use(ZiggyVue, Ziggy)
            .mount(el);
    },
    progress: {
        color: '#4B5563',
    },
});

` даже это не работает, если я пытаюсь добавить ссылки cdn в app.blade.php

`<!DOCTYPE html>
<html lang = "{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset = "utf-8">
        <meta name = "viewport" content = "width=device-width, initial-scale=1">

        <title inertia>{{ config('app.name', 'Bathinda Chemicals') }}</title>

        <!-- Fonts -->
        <link rel = "preconnect" href = "https://fonts.bunny.net">
        <link href = "https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel = "stylesheet" />
        <link href = "https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;500;600;700&display=swap" rel = "stylesheet">
        <link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"/>
        <!-- Scripts -->
        @routes
        @vite('resources/js/app.js')

        @inertiaHead
        <link rel = "stylesheet" href = "https://unpkg.com/[email protected]/dist/flowbite.min.css" />

    </head>
    {{-- <body class = "font-sans antialiased">

    </body> --}}
    <body class = "m-0 font-sans antialiased font-normal dark:bg-slate-900 text-base leading-default bg-gray-50 text-slate-500">

        <div class = "absolute w-full bg-indigo-500 dark:hidden h-80"></div>
        <div class = "min-h-screen bg-gray-100">
            @inertia
            <script src = "https://unpkg.com/[email protected]/dist/flowbite.js"></script>

        </div>
    </body>
</html>

`

Я тоже пытался добавить этот код.

`module.exports = {
    content: [
      "./resources/**/*.blade.php",
      "./resources/**/*.js",
      "./resources/**/*.vue",
      "./node_modules/flowbite/**/*.js"
    ],
    theme: {
      extend: {},
    },
    plugins: [
        require('flowbite/plugin')
    ],
  }`

Просто чтобы уточнить, для этого проекта вы используете только базовый Vue 3, верно? А не что-то вроде Laravel Splade?

Avishka Senanayake 19.04.2023 15:16

да! база Vue 3

Neha 20.04.2023 08:47

Извините за задержку. Только что опубликовал ответ на то, что я считаю проблемой!

Avishka Senanayake 20.04.2023 14:40
Как сделать компонент справочного центра с помощью TailwindCSS
Как сделать компонент справочного центра с помощью TailwindCSS
Справочный центр - это веб-сайт, где клиенты могут найти ответы на свои вопросы и решения своих проблем. Созданный для решения многих распространенных...
REACT и NEXT JS вместе с Tailwind CSS
REACT и NEXT JS вместе с Tailwind CSS
Наличие собственного или персонального сайта необходимо в современном мире, а сочетание React и Next JS позволяет разработчику сделать это за меньшее...
Современные подходы к организации и работе с CSS в проекте
Современные подходы к организации и работе с CSS в проекте
Любой, кто писал CSS в течение некоторого времени, знает о сложностях, которые с этим связаны, и о том, насколько это может быть болезненно.
Как использовать псевдокласс :hover в Tailwind только тогда, когда это действительно необходимо (при наличии курсора)
Как использовать псевдокласс :hover в Tailwind только тогда, когда это действительно необходимо (при наличии курсора)
Я люблю Tailwind. Раньше я относился к нему с подозрением, но как только я попробовал его использовать, я был поражен тем, сколько времени он мне...
1
3
332
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я сталкивался с этой проблемой раньше, и в моем случае мне пришлось инициализировать Flowbite в файле Vue с помощью одного из методов жизненного цикла.

Попробуйте это в своем файле Vue:

<script>
import { initFlowbite } from "flowbite";

export default {

    mounted() {
        initFlowbite(); // Initialize Flowbite on mount of the Vue component
    },
}
</script>

При этом все компоненты Flowbite, которые вы будете использовать, будут инициализированы. В моем случае я использовал всплывающие окна, и это не сработало, пока я не использовал функцию initFlowbite().

Подробнее об этом можно прочитать здесь.

Кроме того, приведенный выше пример относится к Vue Options API. Если вы используете Composition API, это можно сделать так:

<script setup>
import { onMounted } from 'vue'
import { initFlowbite } from 'flowbite'

// initialize components based on data attribute selectors
onMounted(() => {
    initFlowbite();
})
</script>

Надеюсь это поможет!

stackoverflow.com/a/76061309/9076175
Neha 21.04.2023 06:50

Спасибо! я также получил его работу с тем же решением. Спасибо, дорогой!

Neha 21.04.2023 06:51

Рад был помочь! Пожалуйста, примите ответ как решение, если это возможно. Это будет мой первый на StackOverflow :D

Avishka Senanayake 21.04.2023 07:23

Другие вопросы по теме