我正在处理一个Next.js项目,并使用TailWind CSS进行样式设置.然而,我在我的page.js文件中遇到了一个与类名称相关的错误.我判断了导入语句,但错误仍然存在.谁能帮助我确定可能导致此问题的原因以及如何解决它?

Code snippet:

import Link from "next/link";

const getSeries = async() => {
    try {
      const res = await fetch('http://localhost:3000/api', {cache: "no-store"});
      if (!res.ok) {
        throw new Error("Fetching failed");
      };
      return res.json();
    } catch (error) {
      console.error("Series Collection: c%FAILED","color:red",error);
    }
  } 
  

export default async function Series() {
    const {series} = await getSeries();

    return (
        <main>
            {series?.map((serie) => {
                return (
                    <div className="flex flex-col">
                    <div className="flex justify-between">
                    <div>
                        <div className="flex flex-col justify-start">
                        <h1 className="text-white font-extrabold pt-2 px-2 mt-2 mx-2">{serie.name}</h1>
                        <div className="flex justify-between pb-2 px-2 mt-2 mx-2">
                            <p className="text-orange-300 md:star_gradient font-extrabold">{serie.author}</p>
                            <p className="opacity-80 text-white font-extrabold ">{serie.rate}</p>
                        </div>
                        </div>
                    </div>
                    <Link href={`@/app/${serie}`} className="rounded opacity-80 bg-blue-500 text-center p-2 m-2 text-white font-extrabold shadow-sm">
                        See More
                    </Link> 
                    </div>
                    <div className="flex carousel">
                      {serie.episodes?.map((episode) => {
                        <Link className={`bg-gradient-to-b from-[url("${episode.thumbnail}")] to-black flex align-end justify-end p-2 m-2 h-[300px] w-[640px] rounded shadow-md`} href={`@/app/${serie}/${episode.id}`}>
                        <h1>{episode?.name}</h1>
                        </Link>
                      })}
                    </div>
                </div>
            )})}
        </main>
  )
} 

Error Message:

./app/globals.css:4:0
Module not found: Can't resolve './{'

https://nextjs.org/docs/messages/module-not-found

Import trace for requested module:
./app/globals.css

我怀疑这个问题可能与page.js文件中的类名称有关,尽管我的导入语句似乎是正确的.任何有关调试和解决此问题的指导意见都将不胜感激.

Note: I need the image to be there since is a great part of my UI

推荐答案

我认为错误可能是由于from-[url("${episode.thumbnail}")].这将使TailWind生成如下规则:

.from-\[url\(\"\$\{episode.thumbnail\}\"\)\] {
  --tw-gradient-from: url("${episode.thumbnail}") var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
}

这可能会导致您的构建系统try 以某种方式将${episode.thumbnail}解析为路径.

同样相关的是,您不能使用字符串连接/内插来构建TailWind类名称.按the documentation:

TailWind提取类名的最重要的含义是,它将只找到在源文件中以complete unbroken strings的形式存在的类.

如果使用字符串内插或将部分类名连接在一起,TailWind将找不到它们,因此也不会生成相应的CSS:

Don’t construct class names dynamically

<div class="text-{{ error ? 'red' : 'green' }}-600"></div>

在上面的示例中,字符串text-red-600text-green-600不存在,因此TailWind将不会生成这些类. 相反,请确保您正在使用的所有类名都完整存在:

Always use complete class names

<div class="{{ error ? 'text-red-600' : 'text-green-600' }}"></div>

此外,from-*url()值将是无意义的,因为它将解析为linear-gradient()色标,其中url()值将是无效的.换句话说,您似乎正在try 应用bg-gradient-to-b from-[url("${episode.thumbnail}")] to-black中的等效CSS:

selector {
  background-image: linear-gradient(to bottom, url("${episode.thumbnail}"), black);
}

也就是说,无效的css.

若要解决此问题,请考虑使用from-类的 colored颜色 值.

Css相关问答推荐

下一个js app样式刷新页面后不工作页面

我应该在哪里放置expo /Reaction本地项目的CSS重置文件?

在css网格中用一个锚标签(顶部/底部边距)包装图像?

创建始终为剪辑元素的300%高度并左对齐的圆形剪辑路径

为什么继承时1rem值不同?

使用纯 CSS 访问跨度内容并设置其样式

具有共享的自动调整列宽的多个 CSS 网格

背景上带有文本的按钮的反转 colored颜色

Tailwind css 和 Next.js 导航组件 z-index 不工作

当父元素处于子元素 input 的焦点状态时更改父元素的样式

为什么每次加载新页面时我的 React 侧边栏都会抖动?

react 样式的条件类名称设置

使用 Webpack5 在 CSS 文件中内联字体和图像?

nth-child 在一个页面上工作,但不在另一个页面上

定位背景图片,添加内边距

Flexbox 代码适用于除 Safari 之外的所有浏览器.为什么?

谷歌浏览器两种元素样式的区别

为什么 CSS 中的光标:指针效果不起作用

通过 JavaScript 更改 CSS 伪元素样式

在 CSS 中结合border-top、border-right、border-left、border-bottom