Şu anda bir webpack-dev sunucusu ve bir omurga yönlendiricisi kullanan bir site kuruyorum.Webpack dev sunucusu iç içe URL'leri yükleyemiyor (GET 404 hatası)
Bugüne kadar her şey örneğin benim ana sayfası için http://localhost:3333
gidebiliriz ve http://localhost:3333/login
benim giriş sayfası için.
Ama bugün benim ilk iç içe url, http://localhost:3333/people/1
gitmeye çalıştı ve (çalışıyor gibi görünüyordu benim konsol 404 GET hatası atmak
tam hata şuydu:.. http://localhost:3333/people/build/bundle.js 404 (Not Found)
benim webpack sunucusu yanlış dizin altında sunucuya doğru dosyalara bakmak için çalışıyor gibi görünüyor bu doğru ise, Hiç bir fikrim yok Bunu nasıl düzeltebilirim. Diğer yığın taşma sorularına ve github sorunlarına baktım, ama boşuna. Düşüncesi olan var mı?
Sunucuyu gulp kullanarak başlatıyorum.
var webpack = require("webpack");
module.exports = {
entry: [
__dirname + "/app/app.js",
"webpack/hot/dev-server",
"webpack-dev-server/client?http://localhost:3333/",
],
output: {
path: __dirname + "/build",
filename: "bundle.js",
publicPath: "http://localhost:3333/",
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin()
],
module: {
loaders: [
{ test: /\.jsx$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader" },
{ test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" },
{ test: /\.scss$/, exclude: /node_modules/, loader: "style!css!sass" },
]
},
resolve: {
root: __dirname,
extensions: ["", ".js", ".jsx"],
},
}
Düzenleme::
var gulp = require("gulp");
var webpack = require("webpack");
var server = require("webpack-dev-server");
var config = require("./webpack.config");
gulp.task("serve", function() {
new server(webpack(config), {
publicPath: config.output.publicPath,
historyApiFallback: true,
hot: true,
quiet: false,
stats: { colors: true, progress: true },
}).listen(3333, "localhost", function (err, result) {
if (err) {
console.log(err);
} else {
console.log("Listening at localhost:3333!");
}
});
});
gulp.task("default", ["serve"]);
İşte benim webpack yapılandırma dosyasıdır: Ben sadece doğrudan beklendiği gibi http://localhost:3333/#/people/1
veya http://localhost:3333/#people/1
ve her şey çalışıyor URL'ler isabet aldığını saptadık İşte benim gulpfile olduğunu.
Url'deki pound sembolünü içermeme izin verecek bir ayar var mı? Umarım bu soruya daha fazla bağlam sağlamaya yardımcı olur.
Takip: Bir omurga yönlendiricisini başlatan ve Backbone.history.start({ pushState: true })
numaralı telefonu arayarak global App
bileşenim var. İşte bir kod snippet'i. yapıcı metotta console.log
fark ederseniz
class App {
constructor() {
console.log("starting up");
this.Router = new Router();
Backbone.history.start({ pushState: true });
}
}
module.exports = new App();
, bu işleyebilen olmayan iç içe sayfalarda ama o yapamaz iç içe sayfalarda denir.
En belirgin hatalar bazen yakalanması en zor olanlardır. Bana zaman ve hayal kırıklığı için teşekkür ederiz :) – Pandaiolo