我使用Golang(Echo)作为我的后端,而React作为我的前端。当我使用webpack捆绑我的代码时,会创建该文件;但是,当我转到localhost时,我的控制台出现错误:3000表示无法找到捆绑文件。这是确切的错误消息:GET http://localhost:3000/build/app.bundle.js net :: 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
任何帮助将不胜感激!
答案 0 :(得分:1)
您设置的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。