找不到捆绑文件

时间:2017-11-13 09:55:43

标签: javascript reactjs go webpack

我使用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

任何帮助将不胜感激!

1 个答案:

答案 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