Dva: Tidak dapat menyegarkan saat menggunakan browserHistory

Dibuat pada 15 Feb 2017  ·  25Komentar  ·  Sumber: dvajs/dva

404 dilaporkan setelah menyegarkan, bagaimana saya harus mengubahnya?

faq question

Komentar yang paling membantu

Saat menggunakan browserHistory, ubah metode impor js html untuk mengimpor dari root.
sebagai berikut:
<script src="/index.js"></script>

@sorrycc dapat menutup masalah ini

Semua 25 komentar

Alat itu digantikan oleh roadhog .

@maafcc
Proyek yang saya buat dengan dva-cli versi terbaru adalah roadhog, tetapi masih memiliki masalah ini.

Roadhog secara khusus menanganinya, secara teori, tidak akan ada masalah seperti itu. package.json posting untuk melihatnya?

@maaf
{
"pribadi": benar,
"skrip": {
"mulai": "server roadhog",
"membangun": "membangun jalan raya",
"lint": "eslint --ext .js tes src",
"precommit": "npm run lint"
},
"mesin": {
"instal-simpul": "6.9.2"
},
"ketergantungan": {
"animate.css": "^3.5.2",
"antd-mobile": "^0.9.14",
"babel-runtime": "^6.9.2",
"dva": "^1.2.1",
"momen": "terbaru",
"path-to-regexp": "terbaru",
"qs": "terbaru",
"rc-form": "^1.3.0",
"bereaksi": "^15.4.0",
"react-dom": "^15.4.0",
"weixin-js-sdk": "^1.2.0"
},
"devDependencies": {
"babel-eslint": "^7.1.1",
"babel-plugin-dva-hmr": "^0.3.2",
"babel-plugin-import": "^1.1.0",
"babel-plugin-transform-runtime": "^6.9.0",
"eslint": "^3.12.2",
"eslint-config-airbnb": "^13.0.0",
"eslint-plugin-import": "^2.2.0",
"eslint-plugin-jsx-a11y": "^2.2.3",
"eslint-plugin-react": "^6.8.0",
"harapkan": "^1.20.2",
"serak": "^0.12.0",
"redbox-react": "^1.3.2",
"roadhog": "^0.5.2"
}
}

package.json terlihat oke. . Anda dapat mencoba dva-example-user-dashboard untuk melihat apakah ada masalah.Jika tidak ada masalah, bandingkan perbedaannya.

@maafcc
Saya mencobanya. Path seperti http://localhost :8000/users bisa di-refresh sesuka hati, tetapi jika pathnya satu level lagi seperti http://localhost :8000/users/users, Anda hanya bisa melompati Link. Jika Anda menyerahkannya, Anda tidak dapat memintanya secara langsung. Apakah tulisan saya salah atau apa alasannya?

Saya melihat antarmuka debugging chrome, dan dilaporkan Uncaught SyntaxError: Unexpected token <

dva-example-user-dashboard memiliki masalah yang sama

image

Saya mencoba menyikat ini tanpa masalah.

@maafcc
Jalur ini dapat di-refresh, tetapi jika Anda mengubah /users menjadi /users/users, itu tidak dapat di-refresh, Anda hanya dapat melompat melalui Tautan
wx20170216-120305 2x
wx20170216-120322 2x

Memodifikasi riwayat dapat menyelesaikan masalah ini, tetapi ada # masalah di URL.
Referensi: https://github.com/dvajs/dva-knowledgemap#Switch-history-to-browserhistory

Seharusnya tidak ada # browserHistory.

@maafcc
Berikut kodenya:

import dva from 'dva';
import 'antd/dist/antd.css';
import { useRouterHistory } from 'dva/router';
import { createHashHistory } from 'history';
import message from 'antd/lib/message';

// 1. Initialize
const app = dva({
  history: useRouterHistory(createHashHistory)({ queryKey: false }),
  onError: (e) => {
    message.error(e.message);
  }
});

Setelah memasukkan http://localhost:8000/ di browser, secara otomatis menjadi
http://localhost:8000/#/

Jika Anda menghapus #, jalur yang sesuai tidak dapat dibuka.

Saya juga mencoba, menyegarkan bilah alamat browser selama perutean multi-level: hashHistory tersedia, browserHistory tidak tersedia (memuat sesuai permintaan)

BrowserHistory tidak tersedia. Apakah melaporkan 404 atau halaman kosong? Jika halaman kosong, periksa konsol. Jika js tidak dimuat, seharusnya publicPath tidak cocok .

Saat menggunakan browserHistory, ubah metode impor js html untuk mengimpor dari root.
sebagai berikut:
<script src="/index.js"></script>

@sorrycc dapat menutup masalah ini

@kairi1227
Terima kasih, itu memang masalahnya

@kairi1227 terima kasih ~ diperkenalkan dari root, telah diselesaikan

Sejujurnya, lebih baik meluangkan waktu untuk membangun lingkungan reaksi+redux.

Saya membangun proyek inisialisasi dva.
Saat mengembangkan, Anda dapat memodifikasi html ke / saat mengutip sumber daya
Setelah pengemasan, ubah menjadi ./
Ini memecahkan masalah bagaimana menggunakan publicPath dan masalah APP HD. Yang berminat bisa cari tahu.

Saya juga mengalami masalah ini Ketika nama domain tingkat kedua digunakan, Tautan dapat digunakan untuk mengarahkan ulang, tetapi penyegaran tidak.
Saya menggunakan metode di atas dan menambahkan a'/' ke file js, tetapi masih tidak valid.

Apakah ada masalah dengan perutean saya?


        <Route path="/" component={ CreateRelevance }>
            <Route path="bg/create" component={ CreateRelevance } />
        </Route>
   </Router>

@maaf

@maafcc
Masalah ini telah diselesaikan.
Dalam mode browserHistory, karena ini adalah mode spa;
Memerlukan konfigurasi nginx: try_files $uri $uri/ /index.html;

@18559909452 Bagaimana cara mengkonfigurasi jika server adalah Apache, bukan nginx?

Tidak melihat metode konfigurasi terkait koa, posting untuk referensi:

const fs = require('fs');
const router = require('koa-router')();

router.get('/*', async (ctx) => {
    const html = fs.readFileSync(path.resolve(filePath));
    ctx.type = 'html';
    ctx.body = html;
  })
...
Apakah halaman ini membantu?
0 / 5 - 0 peringkat