我在后端使用 Golang (Echo),在前端使用 React。当我使用 webpack 打包我的代码时,文件被创建;但是,当我转到 localhost:3000 时,我的控制台出现错误,指出找不到捆绑文件。这是确切的错误消息:GET http://localhost:3000/build/app.bundle.js净::ERR_ABORTED。
这是我的服务器:
func main() {
env.SetEnvVars()
e := echo.New()
e.File("/", "server/static/index.html")
e.Logger.Fatal(e.Start(os.Getenv("PORT")))
}
这是我的 webpack.config.js 文件:
module.exports = {
entry: './client/main.jsx',
output: {
path: path.resolve(__dirname, 'server/static/build'),
filename: 'app.bundle.js'
},
...
我的 index.html 文件中的脚本标签是:
<script src="./build/app.bundle.js"></script>
目前这些文件的目录路径是:
/
server/
main.go
static/
index.html
build/
app.bundle.js
如有任何帮助,我们将不胜感激!
最佳答案
echo
您设置的服务器仅提供一个路径,即根路径 ( "/"
),通过呈现 index.html
的内容文件。因为您没有为该服务器设置任何其他处理程序,所以对根目录以外的路径的任何请求都将导致 404,包括那些通过脚本和链接标记从索引页面发出的请求,例如; <script src="./build/app.bundle.js"></script>
.
能够向类似 "/static/build/app.bundle.js"
的路径提供请求例如,您需要通过注册一个新的处理程序来告诉服务器如何做到这一点。
随着 echo
服务器你可以使用它的Static方法。
e.Static("/static", "static")
请记住,如果您使用 ./build/app.bundle.js
等相对路径,您在 html 标签中使用的链接、相应文件在您机器上的位置以及您启动应用程序的位置都很重要。 ,因此 e.Static
的两个参数可能需要与此处的示例有所不同。
还有更多info .
关于javascript - 未找到捆绑文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47261505/