Dva: No se puede actualizar cuando se usa el navegador

Creado en 15 feb. 2017  ·  25Comentarios  ·  Fuente: dvajs/dva

Se informa 404 después de la actualización, ¿cómo debo cambiarlo?

faq question

Comentario más útil

Cuando use browserHistory, cambie el método de importación js de html para importar desde la raíz.
como sigue:
<script src="/index.js"></script>

@sorrycc puede solucionar este problema

Todos 25 comentarios

La herramienta fue reemplazada por roadhog .

@lo siento
El proyecto que creé con la última versión de dva-cli es roadhog, pero todavía tiene este problema.

Roadhog lo ha abordado específicamente y, en teoría, no habrá tal problema. package.json publicar para verlo?

@ lo siento
{
"privado": verdadero,
"guiones": {
"inicio": "servidor roadhog",
"build": "roadhog build",
"lint": "eslint --ext .js src test",
"precommit": "npm ejecutar lint"
},
"motores": {
"install-node": "6.9.2"
},
"dependencias": {
"animate.css": "^ 3.5.2",
"antd-mobile": "^ 0.9.14",
"babel-runtime": "^ 6.9.2",
"dva": "^ 1.2.1",
"momento": "último",
"path-to-regexp": "más reciente",
"qs": "más reciente",
"rc-form": "^ 1.3.0",
"reaccionar": "^ 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",
"esperar": "^ 1.20.2",
"husky": "^ 0.12.0",
"redbox-react": "^ 1.3.2",
"roadhog": "^ 0.5.2"
}
}

package.json ve bien. . Puede probar dva-example-user-dashboard para ver si hay algún problema. Si no hay ningún problema, compare las diferencias.

@lo siento
Lo intenté. Las rutas como http: // localhost : 8000 / users se pueden actualizar a voluntad, pero si la ruta es un nivel más como http: // localhost : 8000 / users / users, solo puede saltar a través del enlace. Si lo entregas, no puedes solicitarlo directamente. ¿Mi escritura es incorrecta o cuál es la razón?

Eché un vistazo a la interfaz de depuración de Chrome y me informó Error de sintaxis no detectado: token inesperado <

dva-example-user-dashboard tiene el mismo problema

image

Traté de cepillar esto sin problema.

@lo siento
Esta ruta se puede actualizar, pero si cambia / users a / users / users, no se puede actualizar, solo puede saltar a través del enlace
wx20170216-120305 2x
wx20170216-120322 2x

Modificar el historial puede resolver este problema, pero hay un # problema en la URL.
Referencia: https://github.com/dvajs/dva-knowledgemap#Switch-history-to-browserhistory

No debería haber # historial del navegador.

@lo siento
Aquí está el código:

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);
  }
});

Después de ingresar http://localhost:8000/ en el navegador, se convierte automáticamente
http://localhost:8000/#/

Si elimina #, no se puede abrir la ruta correspondiente.

También intenté actualizar la barra de direcciones del navegador durante el enrutamiento de varios niveles: hashHistory está disponible, browserHistory no está disponible (cargar a pedido)

BrowserHistory no está disponible. ¿Está reportando 404 o una página en blanco? Si la página está en blanco, verifique la consola. Si js no está cargado, debería ser que publicPath no coincide .

Cuando use browserHistory, cambie el método de importación js de html para importar desde la raíz.
como sigue:
<script src="/index.js"></script>

@sorrycc puede solucionar este problema

@ kairi1227
Gracias, de hecho es el problema

@ kairi1227 gracias ~ introducido desde la raíz, se ha resuelto

Para ser honesto, es mejor tomarse el tiempo para crear un entorno react + redux.

Construí un proyecto de inicialización de dva.
Al desarrollar, puede modificar html a / al citar recursos
Después del empaque, modifíquelo a ./
Esto resuelve el problema de cómo usar publicPath y el problema de APP HD. Quienes estén interesados ​​pueden averiguarlo.

También encontré este problema.Cuando se usa el nombre de dominio de segundo nivel, Link se puede usar para redirigir, pero no se puede actualizar.
Usé el método anterior y agregué un '/' al archivo js, ​​pero aún no era válido.

¿Hay algún problema con mi ruta?


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

@ lo siento

@lo siento
Este problema ha sido resuelto.
En modo browserHistory, porque es modo spa;
Requiere configuración de nginx: try_files $ uri $ uri / /index.html;

@ 18559909452 ¿Cómo configurar si el servidor es apache en lugar de nginx?

No vi los métodos de configuración relacionados con koa, publíquelo como referencia:

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;
  })
...
¿Fue útil esta página
0 / 5 - 0 calificaciones