تم الإبلاغ عن 404 بعد التحديث ، كيف يمكنني تغييره؟
تم استبدال الأداة بالطريق .
تضمين التغريدة
المشروع الذي قمت بإنشائه باستخدام أحدث إصدار من dva-cli هو لعبة الطريق ، لكنه لا يزال يعاني من هذه المشكلة.
لقد تعامل رودهوج معه بشكل خاص ، ولن تكون هناك مثل هذه المشكلة من الناحية النظرية. package.json
المشاركة لرؤيتها؟
تضمين التغريدة
{
"خاص": صحيح ،
"نصوص": {
"البدء": "خادم الطريق" ،
"بناء": "بناء الطريق" ،
"lint": "eslint --ext .js src test"،
"precommit": "npm run lint"
} ،
"المحركات": {
"عقدة التثبيت": "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": "الأحدث"،
"qs": "الأحدث"،
"rc-form": "^ 1.3.0"،
"رد فعل": "^ 15.4.0"،
"رد فعل دوم": "^ 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-reaction": "^ 1.3.2"،
"الطريق": "^ 0.5.2"
}
}
package.json
بخير. . يمكنك تجربة dva-example-user-dashboard لمعرفة ما إذا كانت هناك أية مشكلة. إذا لم تكن هناك مشكلة ، قارن الاختلافات.
تضمين التغريدة
لقد جربته. يمكن تحديث مسارات مثل http: // localhost : 8000 / مستخدمين حسب الرغبة ، ولكن إذا كان المسار هو مستوى آخر مثل http: // localhost : 8000 / users / users ، يمكنك فقط القفز من خلال الرابط. إذا قمت بتسليمها ، لا يمكنك طلبها مباشرة. هل كتابتي خاطئة ام ما السبب؟
ألقيت نظرة على واجهة تصحيح أخطاء Chrome ، وأبلغت عن Uncaught SyntaxError: Uncaught SyntaxError: Unlimited token <
dva-example-user-dashboard لديه نفس المشكلة
حاولت تنظيف هذا بدون مشكلة.
تضمين التغريدة
يمكن تحديث هذا المسار ، ولكن إذا قمت بتغيير / مستخدمين إلى / مستخدمين / مستخدمين ، فلا يمكن تحديثه ، يمكنك فقط القفز من خلال الرابط
يمكن أن يؤدي تعديل السجل إلى حل هذه المشكلة ، ولكن هناك مشكلة # في عنوان URL.
المرجع: https://github.com/dvajs/dva-knowledgemap#Switch-history-to-browserhistory
يجب ألا يكون هناك #
browserHistory.
تضمين التغريدة
ها هو الكود:
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 ، يجب أن يكون publicPath غير مطابق .
عند استخدام browserHistory ، قم بتغيير طريقة استيراد js من html للاستيراد من الجذر.
كما يلي:
<script src="/index.js"></script>
sorrycc يمكنه إغلاق هذه المشكلة
@ kairi1227
شكرا ، هذه هي المشكلة بالفعل
@ kairi1227 بفضل ~ عرض من الجذر ، وقد تم حلها
لكي نكون صادقين ، من الأفضل أن تأخذ الوقت الكافي لبناء بيئة تفاعل + إعادة.
لقد أنشأت مشروع تهيئة dva.
عند التطوير ، يمكنك تعديل html إلى / عند اقتباس الموارد
بعد التعبئة ، قم بتعديله إلى ./
هذا يحل مشكلة كيفية استخدام publicPath ومشكلة APP HD. يمكن للمهتمين معرفة ذلك.
واجهت هذه المشكلة أيضًا. عند استخدام اسم مجال المستوى الثاني ، يمكن استخدام الرابط لإعادة التوجيه ، لكن لا يمكن التحديث.
لقد استخدمت الطريقة أعلاه وأضفت "/" إلى ملف js ، لكنه لا يزال غير صالح.
هل هناك مشكلة في التوجيه الخاص بي؟
<Route path="/" component={ CreateRelevance }>
<Route path="bg/create" component={ CreateRelevance } />
</Route>
</Router>
تضمين التغريدة
تضمين التغريدة
تم حل هذه المشكلة.
في وضع BrowsHistory ، لأنه وضع spa ؛
يتطلب تكوين nginx: try_files $ uri $ uri / /index.html؛
@ 18559909452 كيف يتم التهيئة إذا كان الخادم هو apache بدلاً من nginx؟
لم تشاهد طرق التكوين المتعلقة بـ 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 ، قم بتغيير طريقة استيراد js من html للاستيراد من الجذر.
كما يلي:
<script src="/index.js"></script>
sorrycc يمكنه إغلاق هذه المشكلة