gpt4 book ai didi

reactjs - 使用 Link 模块的 Next.js 页面未通过 CSS 导入加载文件

转载 作者:行者123 更新时间:2023-12-03 13:38:53 25 4
gpt4 key购买 nike

我正在将 next.js (7.0.2) 添加到现有项目中,但无法弄清楚为什么 Link 模块不加载具有 import 'style.css' 的页面。

我已关注@zeit/next-css说明以及 Next.js/Express一体化。

我安装了以下软件包

  • 下一个7.0.2
  • @zeit/next-css
  • css-loader@1.0.1
  • express (v4)

next.config.js

    // ./next.config.js file
const withCSS = require('@zeit/next-css')
module.exports = withCSS()

index.js

    // ./pages/index.js file
import Link from 'next/link'
const Index = () => (
<div>
<p>Hello Next.js</p>
<p>
<Link href="/test"><a>test</a></Link>
</p>
</div>
)

export default Index

测试.js

    // ./pages/test.js file
import "../style.css"
export default () => <div className="example">Hello World!</div>

样式.css

    // ./style.css file
.example {
font-size: 50px;
}

预期行为:链接模块将加载带有 CSS 的页面,就像加载任何其他页面一样。

实际行为:除了 import 'my.css' 的页面外,所有页面都会加载。我可以通过 url 直接加载该页面。

EG-

  1. 工作=加载http://localhost:3000/index
  2. 工作=加载http://localhost:3000/test (并且应用了 CSS)
  3. 不起作用=加载http://localhost:3000/index并单击测试链接。什么都没发生。如果我转到开发人员工具 (Chrome) 上的“网络”选项卡,我会看到列出的 test.js 并且启动器是 page-loader.js。后面似乎是一系列 on-demand-entries-ping?page=/但不确定这是什么意思。

更新:如果我注释掉 import "../style.css" 文件会加载(没有 CSS)。所以看起来服务器端路由的 CSS 处理中有些东西与我的设置不符。

@Darryl - 这是我的快速初始化文件中的相关片段。整个文件可以在 https://github.com/tagyoureit/nodejs-poolController/blob/6.0-DEV/src/lib/comms/server.js#L33 找到(当前迭代) .

  function startServerAsync(type) {
...
const _next = require('next')
const dev = process.env.NODE_ENV !== 'production'
...
// servers is an object that holds http/https/socketio/mdns and other servers
// type='http' in current testing
servers[type].next = _next({ dev })
servers[type].next.prepare()
.then(() => {
servers[type].app = express();
servers[type].server =
container.http.createServer(servers[type].app);
configExpressServer(servers[type].app, express, servers[type].next);
servers[type].server = servers[type].server.listen(servers[type].port, function () {
container.logger.verbose('Express Server ' + type + ' listening at port %d', servers[type].port);
container.io.init(servers[type].server, type)
resolve('Server ' + type + ' started.');
});
}

// assign static/api routes
function configExpressServer(app, express, _next) {
// use next as router
const handle = _next.getRequestHandler()

// many app.get / app.use statements
...
// catch all to route through next
app.get('*', (req, res) => {
const { parse } = require('url')
const parsedUrl = parse(req.url, true)
const { pathname, query } = parsedUrl
handle(req, res, parsedUrl)
})
}

最佳答案

我也遇到了这个问题,花了更多时间终于找到了解决方案,首先你应该使用布局管理你的代码,然后在任何使用布局的页面中你必须添加: import Link From 'next/link ' 就在导入布局线之后。我希望这能解决您的问题

关于reactjs - 使用 Link 模块的 Next.js 页面未通过 CSS 导入加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54133911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com