更新後に404が報告されますが、どのように変更すればよいですか?
ツールはroadhogに置き換えられ
@sorrycc
最新バージョンのdva-cliで作成したプロジェクトはroadhogですが、それでもこの問題があります。
Roadhogは特にそれを扱っています。理論的には、そのような問題はありません。 package.json
投稿してご覧ください。
@sorrycc
{{
「プライベート」:true、
「スクリプト」:{
"start": "roadhog server"、
"ビルド": "ロードホッグビルド"、
"lint": "eslint --ext .js src test"、
"precommit": "npm run lint"
}、
「エンジン」:{
"install-node": "6.9.2"
}、
「依存関係」:{
"animate.css": "^ 3.5.2"、
"antd-mobile": "^ 0.9.14"、
"babel-runtime": "^ 6.9.2"、
"dva": "^ 1.2.1"、
「瞬間」:「最新」、
"path-to-regexp": "latest"、
"qs": "最新"、
"rc-form": "^ 1.3.0"、
"react": "^ 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"、
"期待する": "^ 1.20.2"、
"ハスキー": "^ 0.12.0"、
"redbox-react": "^ 1.3.2"、
"roadhog": "^ 0.5.2"
}
}
package.json
は大丈夫そうです。 。 dva-example-user-dashboardを試して、問題があるか
@sorrycc
http:// localhost :8000 / usersのようなパスは自由に更新できますが、パスがhttp:// localhost :8000 / users / usersのようにもう1つのレベルの場合は、リンクを介してのみジャンプできます。裏返すと、直接リクエストすることはできません。私の文章が間違っているのですか、それとも理由は何ですか?
Chromeのデバッグインターフェイスを調べたところ、Uncaught SyntaxError:Unexpected token <が報告されました。
dva-example-user-dashboardにも同じ問題があります
これを問題なくブラッシングしてみました。
@sorrycc
このパスは更新できますが、/ usersを/ users / usersに変更すると、更新できず、リンクをジャンプすることしかできません。
履歴を変更することでこの問題を解決できますが、URLに#問題があります。
参照: https :
browserHistoryに#
があってはなりません。
@sorrycc
コードは次のとおりです。
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);
}
});
ブラウザにhttp://localhost:8000/
を入力すると、自動的に次のようになります。
http://localhost:8000/#/
#を削除すると、対応するパスを開くことができません。
また、マルチレベルルーティング中にブラウザーのアドレスバーを更新してみました:hashHistoryが使用可能、browserHistoryが使用不可(オンデマンドでロード)
BrowserHistoryは利用できません。404または空白のページを報告していますか?ページが空白の場合は、コンソールを確認してください。jsがロードされていない場合は、
browserHistoryを使用する場合は、htmlのjsインポートメソッドをルートからインポートするように変更してください。
次のように:
<script src="/index.js"></script>
@sorryccはこの問題を解決できます
@ kairi1227
おかげで、それは確かに問題です
@ kairi1227ありがとう〜ルートから導入され、解決されました
正直なところ、時間をかけてreact + redux環境を構築することをお勧めします。
dva初期化プロジェクトをビルドしました。
開発時に、リソースを引用するときにhtmlを/に変更できます
パッケージ化したら、。/に変更します。
これにより、publicPathの使用方法の問題とAPPHDの問題が解決されます。興味のある方はご覧ください。
この問題も発生しました。セカンドレベルドメイン名を使用すると、リンクを使用してリダイレクトできますが、更新はできません。
上記の方法を使用して、jsファイルに「/」を追加しましたが、それでも無効でした。
ルーティングに問題はありますか?
<Route path="/" component={ CreateRelevance }>
<Route path="bg/create" component={ CreateRelevance } />
</Route>
</Router>
@sorrycc
@sorrycc
この問題は解決されました。
browserHistoryモードでは、スパモードであるため。
nginx構成が必要です:try_files $ uri $ uri / /index.html;
@ 18559909452サーバーがnginxではなくApacheであるかどうかを構成するにはどうすればよいですか?
koa関連の設定方法が見つかりませんでした。参照用に投稿してください。
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;
})
...
最も参考になるコメント
browserHistoryを使用する場合は、htmlのjsインポートメソッドをルートからインポートするように変更してください。
次のように:
<script src="/index.js"></script>
@sorryccはこの問題を解決できます