【问题标题】:Accessing files outside the entry point访问入口点之外的文件
【发布时间】:2017-10-13 07:20:01
【问题描述】:

我正在构建具有如下结构的反应种子项目:

project
│   package.json
│   webpack.config.js
│   .babelrc   
│
└───bin
│      app.bundle.js   
│ 
└───node_modules
|
└───public
│      index.html     
└───src
       app.jsx

要启动项目,我有设置命令 npm run dev 运行:

webpack -d --watch && ./node_modules/.bin/http-server  -a localhost -p 8000 -c-1

它在 localhost:8000 上启动服务器,并且 webpack 正在监视更改。

http-server 在我的 index.html 所在的 ./public 文件夹中有一个入口点。

这似乎是一种运行服务器的安全方式,因为它只能访问公用文件夹,但是当我尝试包含已编译的 app.bundle.js 文件时遇到了问题。

./public/index.html

<html>
  <head>
    <meta charset="utf-8">
    <title>Seed project</title>
  </head>
  <body>
    <div id="app" />
    <script src="../bin/app.bundle.js" type="text/javascript"></script>
  </body>
</html>

当我运行服务器时,我收到 app.bundle.js 文件未找到的错误,因为服务器看不到公共文件夹入口点上方的任何内容。

将 index.html 移动到根文件夹不是一个好习惯,因为这样就可以访问所有其他文件,这是不安全的。

这个问题应该如何解决?

提前致谢。

PS。 Webpack 从 src 文件夹编译文件并在 ./bin 文件夹中创建单个文件。

【问题讨论】:

  • 绑定应该放在 ./public 文件夹中。您不是在制作桌面应用程序,因此请放弃 ./bin 文件夹。

标签: javascript node.js webpack


【解决方案1】:

我相信这是因为 nodejs 当你定义一个静态文件夹以便访问它的文件(如 js css 图像等)

app.use(express.static('public'));

对你的 bin 文件做同样的事情,你也可以访问它

app.use(express.static('bin'));

【讨论】:

    猜你喜欢
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 2017-08-31
    • 2011-12-15
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多