Vue CLIを使用して単一ページアプリを開発していて、履歴pushstateが機能するようにして、クリーンなURLを取得しています。
私はこれに従う必要があります: https://www.netlify.com/docs/redirects/#history-pushstate-and-single-page-apps を追加し、_redirects
ファイルを次のように私のサイトフォルダのルートに追加します。
/* /index.html 200
問題は、これを追加する方法がわからないことです_redirects
ファイルをdistフォルダのルートに追加します。静的フォルダーに追加してみましたが、ルートではなくサブフォルダーになってしまいました。 Netlifyに展開した後に履歴モードが機能するように、このファイルをどのように含めることができますか?
// config/index.js
build: {
// Paths
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: '/',
Vue-cliバージョン3.0.0-beta.xを使用した新しいビルドセットアップの場合、パブリックフォルダーがあり、次のセットアップは必要ありません。 _redirects
ファイルをpublic
フォルダーのルートの下に置くだけです。ビルドすると、デプロイに使用されるdistフォルダーにコピーが作成されます。
Vue.jsはwebpackを使用して静的アセットをコピーします。これは本番ビルドのwebpack.prod.conf.js
で維持されており、この場合はNetlifyで必要になります。私は、最善かつ最もクリーンな構成がこのソリューションに基づく であると信じています。
new CopyWebpackPlugin
でwebpack.prod.conf.js
のファイルを検索します。
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
}
])
ルートを作成します(プロジェクト内の静的フォルダーと同じレベルのフォルダー)これには任意の名前を付けることができますが、例ではroot
を使用します。
次に、_redirects
ファイルが新しいroot
ディレクトリまたはそれを呼び出したものにあることを確認します。この場合はroot
という名前です
ここで、webpack.prod.conf.js
CopyWebpackPluginセクションを次のように変更します。
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
},
{
from: path.resolve(__dirname, '../root'),
to: config.build.assetsRoot,
ignore: ['.*']
}
])
netlify.toml
ファイルは少しクリーンになる傾向があります。これをファイルに入れて、探していたリダイレクトを取得します。
# The following redirect is intended for use with most SPA's that handles routing internally.
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
netlify.toml
ファイル ここ 。
私は最後の行なしでラトガー・ウィレムスのスニペットを試してみましたが、うまくいきました。クレジットはハミッシュモファットに送られます。
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
vue appの/ publicディレクトリに_redirectsファイルを追加するだけです。