PHP文件中TailwindCSS类样式无法正常生效问题排查
故障现象
页面可正常检测到引入的TailwindCSS样式表,但代码中编写的类名并未正确应用对应样式。相同代码复制到TailwindCSS Playground中测试样式可正常生效,本地环境无法定位故障原因。
相关代码
页面代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exceptional Kids | Login</title> <link href="../style.css" rel="stylesheet"> </head> <body> <div class="flex justify-center items-center h-screen"> <div class="border-4 border-black rounded-3xl flex justify-around p-10"> <div class="text-center border-r-2"> <p class="text-xl font-bold">Login</p> <form action="/api/login" method="post" class="px-5"> <div> <label for="email">Email: </label> <input type="email" name='email' class="shadow-md mx-4 my-2" /><br /> </div> <div> <label for="password">Password: </label> <input type="password" name='password' class="shadow-md mx-4 my-2" /><br /> </div> <input type="submit" value='Login' class="border-2 p-1 my-5 rounded-md" /> </form> </div> <div class="text-center border-l-2"> <p class="text-xl font-bold">Sign Up</p> <form action="/api/signup" method="post" class="px-5"> <div> <label for="firstName">Enter name of parent/guardian: </label> <input type="text" name='firstName' class="shadow-md mx-4 my-2" /><br /> </div> <div> <label for="lastName">Enter name of parent/guardian: </label> <input type="text" name='lastName' class="shadow-md mx-4 my-2" /><br /> </div> <div> <label for="email">Enter parent/guardian's email: </label> <input type="email" name='email' class="shadow-md mx-4 my-2" /><br /> </div> <div> <label for="password">Enter password: </label> <input type="password" name='password' class="shadow-md mx-4 my-2" /><br /> </div> <input type="submit" value='Create Account' class="border-2 p-1 my-5 rounded-md" /> </form> </div> </div> </div> </body> </html>
TailwindCSS配置文件
/** @type {import('tailwindcss').Config} */ module.exports = { content: ["./src/**/*.{html,php}"], theme: { extend: {}, }, plugins: [], }
故障原因
本地Tailwind构建时,只会扫描content配置项中匹配到的文件,提取文件中用到的Tailwind类名,生成对应样式写入最终输出的CSS文件。当前配置仅扫描./src/目录下的html、php文件,从页面中../style.css的引入路径判断,当前登录页面不在./src/扫描范围内,页面用到的类名没有被提取,最终生成的CSS文件里不存在对应样式规则,因此类名不生效。
Tailwind Playground默认实时扫描所有输入的代码生成样式,不存在扫描范围限制,因此相同代码可以正常运行。
修复步骤
- 调整
tailwind.config.js中的content配置,补充当前页面对应的存放路径到扫描列表中。比如页面存放在根目录的pages文件夹,就将配置修改为content: ["./src/**/*.{html,php}", "./pages/**/*.{html,php}"];如果HTML文件直接存放在项目根目录,就补充"./*.html"到配置数组。 - 配置修改完成后,重新执行Tailwind构建命令,生成新的样式文件,未重新构建的情况下配置修改不会生效。
- 构建完成后使用Ctrl+F5强制刷新浏览器,清除本地缓存的旧CSS文件后再测试效果。
内容的提问来源于stack exchange,提问作者helpmecode
相关产品推荐
相关产品推荐

