2017-12-09 10 views
3

Vue CLIを使用して単一ページアプリケーションを開発しています。NetlifyでホストされているVue SPAのルートパスに_redirectsファイルを追加します。

私はこれに従う必要が: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: '/', 

答えて

4

Vue.jsは静的資産をコピーするためにwebpackを使用します。このケースでは、Netlifyのために必要なものが、製品ビルドのためにwebpack.prod.conf.jsに保存されています。私は最高のクリーンな構成があると信じていますbased on this solution.

​​3210のファイルをwebpack.prod.conf.jsで検索してください。

// copy custom static assets 
new CopyWebpackPlugin([ 
    { 
    from: path.resolve(__dirname, '../static'), 
    to: config.build.assetsSubDirectory, 
    ignore: ['.*'] 
    } 
]) 

(静的フォルダのプロジェクトと同じレベルにあるフォルダ)ルートを作成します あなたが好きこの任意の名前を付けることもできますが、私は、例えばrootを使用します。

ファイルが新しいディレクトリにあるか、それを呼び出すファイルであることを確認します。

// 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: ['.*'] 
    } 
]) 
+0

はい、私は静的フォルダ内に '_redirects'ファイルを配置しようとしたが、それはその後に設置されています。この場合、それは次のように見えるようにwebpack.prod.conf.js CopyWebpackPluginセクションを変更する今root

という名前ですdistlフォルダ内の静的フォルダにあるのに対し、Netlifyがそれをピックアップするように '_redirects'をビルド後にrootに置く必要があります。 – Alex

+0

ですが、上記の答えに述べたような設定を確認しましたか? – talves

+0

はい私は(私の質問で編集した)上記と同じ設定をしている、私は '_redirects'ファイルがパブリックフォルダのルートで終わるように、空の文字列にSubDirectoryを変更しないようにしようとしています。ファイル – Alex

関連する問題