Приложение Parcel / React работает на локальном хосте, но не на сервере - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть приложение Parcel / React, которое я пытаюсь запустить в производство. После тестирования я вижу, что моя навигация больше не работает на сервере (404).

Я использую React Router следующим образом:

<Suspense fallback={<div>Loading...</div>}>
  <Router primary={false}>
  <Home path="/" />
  <About path="/about" />
  <Portfolio path="work" />
  <Contact path="/contact" />
  </Router>
</Suspense>

Я добавил домашнюю страницу в свой пакет. json, как предлагается в другой теме, но все же не повезло.

"homepage": "."

У меня нет опыта работы с диспетчером IIS или чем-то подобным, поэтому я не решаюсь вносить какие-либо изменения на сервере, тем более что у меня есть другие веб-сайты на том же сервере.

Есть ли что-нибудь, что можно сделать в коде / сборке, чтобы сделать эту работу на сервере, или это потребует изменений IIS?

Вот мой пакет. json:

    {
  "name": "ericbelldesigns",
  "version": "1.0.0",
  "description": "Eric Bell Designs 2020",
  "main": "src/App.js",
  "dependencies": {
    "@frontendmasters/pet": "^1.0.3",
    "@reach/router": "^1.3.1",
    "anime": "^0.1.2",
    "axios": "^0.19.2",
    "bezier-easing": "^2.1.0",
    "charming": "^3.0.1",
    "gsap": "^2.1.3",
    "gsap-react-plugin": "^1.0.2",
    "imagesloaded": "^4.1.4",
    "react": "^16.12.0",
    "react-dom": "^16.12.0",
    "react-router-dom": "^5.1.2",
    "three": "^0.106.2",
    "three-obj-loader": "^1.1.3",
    "three-orbit-controls": "^82.1.0"
  },
  "browserslist": [
    "last 2 Chrome versions",
    "last 2 ChromeAndroid versions",
    "last 2 Firefox versions",
    "last 2 FirefoxAndroid versions",
    "last 2 Safari versions",
    "last 2 iOS versions",
    "last 2 Edge versions",
    "last 2 Opera versions",
    "last 2 OperaMobile versions"
  ],
  "devDependencies": {
    "@babel/core": "^7.8.4",
    "@babel/plugin-proposal-class-properties": "^7.8.3",
    "@babel/preset-env": "^7.8.4",
    "@babel/preset-react": "^7.8.3",
    "animejs": "^3.1.0",
    "babel-eslint": "^10.0.3",
    "cross-env": "^5.2.1",
    "eslint": "^5.16.0",
    "eslint-config-prettier": "^4.3.0",
    "eslint-plugin-import": "^2.20.1",
    "eslint-plugin-jsx-a11y": "^6.2.0",
    "eslint-plugin-react": "^7.18.3",
    "eslint-plugin-react-hooks": "^1.6.1",
    "parcel-bundler": "^1.12.4",
    "parcel-plugin-html-externals": "^0.1.2",
    "postcss-modules": "^1.5.0",
    "prettier": "^1.19.1",
    "sass": "^1.26.0",
    "threejs-controls": "^1.0.6"
  },
  "scripts": {
    "dev": "parcel src/index.html",
    "dev:mock": "cross-env PET_MOCK=mock npm run dev",
    "format": "prettier --write \"src/**/*.{js,jsx}\"",
    "lint": "eslint \"src/**/*.{js,jsx}\" --quiet",
    "test": "echo \"Error: no test specified\" && exit 1",
    "production": "parcel build src/index.html"
  },
  "externals": {
    "/images/**/*": false
  },
  "author": "Eric Bell <eric@ericbelldesigns.com>",
  "license": "Apache-2.0",
  "keywords": []
}

1 Ответ

0 голосов
/ 25 февраля 2020

Если вы импортировали BrowserRouter, измените его на HashRouter и посмотрите, поможет ли это.

...