Dva: لا يمكن التحديث عند استخدام سجل المتصفح

تم إنشاؤها على ١٥ فبراير ٢٠١٧  ·  25تعليقات  ·  مصدر: dvajs/dva

تم الإبلاغ عن 404 بعد التحديث ، كيف يمكنني تغييره؟

faq question

التعليق الأكثر فائدة

عند استخدام browserHistory ، قم بتغيير طريقة استيراد js من html للاستيراد من الجذر.
كما يلي:
<script src="/index.js"></script>

sorrycc يمكنه إغلاق هذه المشكلة

ال 25 كومينتر

تم استبدال الأداة بالطريق .

تضمين التغريدة
المشروع الذي قمت بإنشائه باستخدام أحدث إصدار من 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 لديه نفس المشكلة

image

حاولت تنظيف هذا بدون مشكلة.

تضمين التغريدة
يمكن تحديث هذا المسار ، ولكن إذا قمت بتغيير / مستخدمين إلى / مستخدمين / مستخدمين ، فلا يمكن تحديثه ، يمكنك فقط القفز من خلال الرابط
wx20170216-120305 2x
wx20170216-120322 2x

يمكن أن يؤدي تعديل السجل إلى حل هذه المشكلة ، ولكن هناك مشكلة # في عنوان 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;
  })
...
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات