主にSEO機能のために、既存のReactアプリをNext.jsに統合しています。
<Header>
のNext.js
タグ内にcssファイルのリンクを貼り付けたところ、問題なく動作するようです。 <script>
タグを使用してjavascriptファイルで同じことを実行しようとしたとき、それらのスクリプト内のコードは実行されません。しかし、chrome開発ツールでhttp 200
がロードされているのを確認できます。
Loadjs
からnpm
というライブラリを使用してcomponentDidMount
内のスクリプトをロードしようとしましたが、<script>
タグを使用した場合とまったく同じ結果が得られました。
Next.js
で私が知らないような単純なことを行う適切な方法はありますか?
pages/index.js
ファイルに含まれるコードは次のとおりです。
import React from "react"
import Head from 'next/head'
import MyAwesomeComponent from "../components/mycomponent.js"
export default () => (
<div>
<Head>
<link type="text/css" rel="stylesheet" href="static/css/chatwidget.css" />
<link type="text/css" rel="stylesheet" href="static/css/download.css" />
<script type="text/javascript" src="static/libs/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]/jquery.mCustomScrollbar.concat.min.js"></script>
<script type="text/javascript" src="static/libs/bootstrap.min.js"></script>
<script type="text/javascript" src="static/libs/owl.carousel.min.js"></script>
<script type="text/javascript" src="static/scripts/chatHead.js"></script>
<script type="text/javascript" src="static/libs/jquery.magnific-popup.js"></script>
</Head>
<MyAwesomeComponent /> {/* a simple React component that returns : <p>Hello World </p>*/}
</div>
)
返事遅れてすみません。リンクされたすべてのscripts
が、実際に各アクションに対してfunctions
を実行する1つのスクリプトを逃したことがわかりました。
これがあなたを助けるかもしれません Nextjsパブリックフォルダ
静的フォルダーをルートディレクトリのパブリックフォルダーに移動します
export default () => (
<div>
<Head>
<link type="text/css" rel="stylesheet" href="/static/css/chatwidget.css" />
<link type="text/css" rel="stylesheet" href="/static/css/download.css" />
<script type="text/javascript" src="/static/libs/jquery.min.js"></script>
...
</Head>
<MyAwesomeComponent />
</div>
)
これをjsコードで実行することもできます
<script
dangerouslySetInnerHTML={{
__html: `
let a = 1;
functionCall();
`,
}}
></script>