Я новичок в веб-разработке.
Когда я запускаю свой проект локально (webpack-dev-server), я могу вручную изменить URL и увидеть конкретный компонент. Итак, локально, все работает нормально, я добавил historyApiFallBack в свой конфиг веб-пакета и т. Д., И он работает просто отлично.
Но когда я загружаю свою сборку на веб-хостинг и проект подключается к сети, я не могу изменить URL-адрес вручную, например http://tizim.org.kz/about, или обновить. Это дает мне 404 страницы по умолчанию хостинга.
Ниже вы можете увидеть мои конфигурации и изображение, которое показывает, как управляется каталог приложения.
Любые подходящие ответы или предложения будут чрезвычайно полезны.
Спасибо за внимание.
введите описание ссылки здесь
это фотография моего каталога проектов
server.js
const express = require("express");
const path = require("path");
const app = express();
app.use(express.static(path.join(__dirname, "build")));
app.get("*", (req, res) => {
res.sendFile(path.join(__dirname, "build", "index.html"));
});
const port = process.env.PORT || 4444;
app.listen(port, () => console.log(`server running on port ${port}`));
webpack.config.js
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
entry: path.join(__dirname, "src", "index.js"),
output: {
path: path.join(__dirname, "build"),
filename: "bundle.js",
publicPath: "/"
},
devServer: {
historyApiFallback:true
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
{
test: /\.(css|scss)$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
"postcss-loader",
"sass-loader"
]
},
{
test: /\.(jpg|jpeg|png|gif|mp3|svg)$/,
use: [
{
loader: "file-loader",
options: {
name: "[path][name]-[hash:8].[ext]"
}
}
]
}
]
},
plugins: [
new HtmlWebpackPlugin({
filename: "index.html",
template: path.join(__dirname, "src", "index.html")
}),
new MiniCssExtractPlugin({
filename: "[name].css",
chunkFilename: "[id].css"
})
]
};
package.json
{
"name": "webpack-babel-react-starter",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"devDependencies": {
"@babel/core": "7.2.2",
"@babel/plugin-proposal-class-properties": "7.2.3",
"@babel/plugin-transform-runtime": "7.2.0",
"@babel/preset-env": "7.2.3",
"@babel/preset-react": "7.0.0",
"autoprefixer": "9.4.3",
"babel-loader": "8.0.4",
"css-loader": "2.1.0",
"file-loader": "3.0.1",
"html-webpack-plugin": "3.2.0",
"mini-css-extract-plugin": "0.5.0",
"node-sass": "4.11.0",
"postcss-loader": "3.0.0",
"sass-loader": "7.1.0",
"style-loader": "0.23.1",
"webpack": "4.28.3",
"webpack-cli": "3.1.2",
"webpack-dev-server": "3.1.14"
},
"scripts": {
"start": "node server.js",
"dev": "webpack-dev-server --mode production --hot",
"build": "webpack",
"heroku-postbuild": "npm run build"
},
"dependencies": {
"@babel/runtime": "7.2.0",
"bootstrap": "^4.3.1",
"react": "^16.8.6",
"react-bootstrap": "^1.0.0-beta.8",
"react-bootstrap-webpack": "^1.0.4",
"react-dom": "^16.8.6",
"react-router": "^5.0.0",
"react-router-dom": "^4.3.1",
"react-router-transition": "^1.3.0"
},
"browserslist": [
"> 0.2%",
"last 15 versions",
"not dead"
]
}