Как заставить Tailwind v4 обнаруживать CSS-классы в шаблонах Django с помощью Vite?
Я интегрирую Tailwind CSS v4 с Django с помощью Vite, но столкнулся с проблемой, из-за которой Tailwind обнаруживает классы только из приложения Vite и не распознает новые классы, добавленные в шаблоны Django.
То, что я Делал До Сих Пор:
- Настроил Vite в моем проекте Django:
- Установил Tailwind CSS версии 4 и голосую в веб-приложении / каталоге.
- Запуск npm run dev обслуживает стили, а npm run build выводит данные в dist/.
- Настроенный объект (vite.config.js):
import { defineConfig } from 'vite';
import { resolve } from 'path';
import tailwindcss from '@tailwindcss/vite';
export default defineConfig({
plugins: [
tailwindcss(),
],
base: '/static/', // Important for Django to locate assets
build: {
manifest: true,
emptyOutDir: true,
outDir: resolve(__dirname, 'dist'), // Ensure the output folder is 'dist'
rollupOptions: {
input: {
tailwind: resolve(__dirname, 'src/style.css'),
},
},
},
server: {
watch: {
usePolling: true, // Ensures Django templates are watched
ignored: ['!../templates/**/*'], // Make sure templates are included
},
},
});
- Сконфигурированные статические файлы Django (settings.py):
STATIC_URL = 'static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATICFILES_DIRS = [
BASE_DIR / "webapp/dist" # Matches vite config!
]
DJANGO_VITE = {
"default": {
"dev_mode": DEBUG,
}
}
- Обновлен мой шаблон Django (templates/home.html):
<!-- templates/home.html -->
{% load django_vite %}
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Tailwind 🤝🏻 Django</title>
{% vite_hmr_client %}
<link rel="stylesheet" href="{% vite_asset_url 'src/style.css' %}" />
</head>
<body>
<h1 class="p-8 text-6xl inline-block font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-blue-500 to-red-500">
Tailwind and Django!
</h1>
<h1 class="text-red-700 text-3xl">geeg</h1>
</body>
</html>
- Настроенный файл style.css в webapp/src/:
@import "tailwindcss";
Проблема:
- Tailwind обнаруживает только классы из моего приложения Vita (src/), но не обнаруживает новые классы, добавленные в шаблоны Django.
- Если я использую класс, подобный text-red-500, в моем тесте голосования, это работает. Но если я попробую text-red-600 внутри шаблона Django, это не сработает.
- Поскольку Tailwind v4 удален tailwind.config.js, я не знаю, как правильно указать пути к контенту для шаблонов Django.
В чем мне Нужна помощь:
Как мне правильно указать пути к шаблонам Django в Tailwind v4 (без tailwind.config.js )?
Это мой репозиторий, если вы хотите взглянуть Репозиторий на Github
Мы были бы очень признательны за любую помощь! 🚀
Как вы уже поняли, при использовании плагина Video Tailwind будет сканировать файлы в графе модулей Vite только в поисках имен классов для генерации. Ваших шаблонов Django не было бы в графе этого модуля, так как они не обрабатываются Vite.
Чтобы обойти это, вы можете использовать директиву @source
, чтобы явно указать на другие файлы, которые Tailwind должен сканировать:
/* webapp/src/index.css */
@import "tailwindcss";
@source "../../templates";