当前位置: 首页 > 知识库问答 >
问题:

Web包、开发人员中间件和静态文件

宓诚
2023-03-14

我有一个与Express一起提供的Webpack/React/Redux项目,我很难理解它们是如何结合在一起的。我的Express应用程序运行Webpack并提供我的根索引。html文件,如下所示:

const app = express();
const server = require("http").createServer(app);

app.use(bodyParser.json());
app.use("/some/path", express.static(path.join(__dirname, "/public")));

// webpack middleware
const compiler = webpack(webpackConfig);

const webpackDevMid = require("webpack-dev-middleware");
const webpackHotMid = require("webpack-hot-middleware");

app.use(webpackDevMid(compiler, {
    noInfo: true,
    publicPath: webpackConfig.output.publicPath  // '/static/'
}));

app.use(webpackHotMid(compiler));

app.get("/", (req, res) => {
    if (!req.cookies.access_token) return res.redirect("/login");
    return res.sendFile(path.join(__dirname, "index.html"));
});

然后,我的根索引文件的主体中有“root”标记,脚本标记中有Webpack“/static/bundle.js”。根标记指向我的索引。js文件捆绑在捆绑包中。js和所有内容都正确渲染。这一切都很好。

我的问题是,我试图将我的favicon.ico包含在我的根index.html中,它没有与Webpack捆绑在一起,所以我想将其作为一个静态文件与Express一起使用,这通常是通过代码进行的:

app.use("/some/path", express.static(path.join(__dirname, "/public")));

不幸的是,此文件夹没有提供给客户端,我无法访问Webpack捆绑包之外的favicon(my index.html无权随意访问该捆绑包)。事实上,我试图以这种方式向客户机公开的任何东西都不起作用。关于webpack开发中间件,或者Express服务器使用webpack的方式,是否有我不了解的地方?有什么好处?

共有2个答案

闻人英韶
2023-03-14

只需像这样设置静态文件夹

app.use(express.static(__dirname + '/path-to-static-folder'));
洪育
2023-03-14

在您的网页包文件中,确保您有:

target: 'node',
node: {
    __dirname: false,
},

见:

  • https://github.com/webpack/webpack/issues/1599

或者,使用path。加入('.')

 类似资料:
  • 问题内容: 从主题上类似标题的数量来看,这似乎引起了很多混乱,但是尝试使用django开发服务器尝试在静态文件中可以找到的所有内容,我几乎放弃了希望! 因此,我的静态文件从C:/ Users / Dan / seminarWebsite / static /提供,其中我有用于图像,css等的子文件夹。 设置: 静态文件应用程序也处于活动状态。 网址: 模板: 但是,只有一个断开的链接出现在此地址处

  • 我是新来的Webpack和运行的解决方案基于Angulal-种子为Angulal2使用Webpack和Webpack开发服务器。 在本地,一切都正常运行,但我找不到任何构建的静态文件被保存在哪里。例如,我在本地运行站点,文件main.bundle.js在配置的端口3000上从本地主机下载,但根据Windows资源管理器的“搜索”功能,该文件在光盘上的任何位置都不存在。 Web包开发服务器使用以下输

  • 本文向大家介绍测试人员和开发人员区别?相关面试题,主要包含被问及测试人员和开发人员区别?时的应答技巧和注意事项,需要的朋友参考一下 ①人员不同 测试:开发人员和测试人员 开发:只有开发人员 ②所处阶段不同 测试:贯穿整个软件开发生命周期 调试:在软件开发编码阶段以及测试过程中对BUG进行调试 ③对bug处理结果不同 测试:只找出错误,不解决 调试:找出错误并解决

  • 我正在使用Phonegap Developer for Android开发Phonegap应用程序。我有一个大问题:在我更改一些文件之后,比如索引。html,或一些。js,一些。css,一些。png 。。。它在应用程序上不起作用。基本上,应用程序重新加载,我得到相同的旧文件。 我尝试用四个手指重新加载,用三个手指返回应用程序主页,然后再次连接。我试着通过桌面检查并强制定位。重新加载(true)。没

  • 问题内容: 是否有人知道针对具有以下一项或多项功能的Web开发人员的最新Linux发行版的ISO映像: 可以轻松设置LAMP堆栈(易于安装的Apache 2,虚拟站点目录结构(托管),PHP的安装,mySQL的安装) 为初学者准备的Ruby / RoR 为多个存储库设置了Subversion 配置为充当Web服务器的防火墙(端口80已打开,其他不多) 已安装Python和Trac并将其与Apach

  • 问题内容: 我正在努力上班。当我运行时,它告诉我我缺少Python开发人员软件包。如何获取并安装Python开发人员软件包? 我得到的错误如下: 系统(Amazon EC2实例) Apache 2.2.16(Unix) Amazon Linux(Red Hat 4.4.4-13)AMI Beta版本2011.02 的Python 2.6.6 问题答案: 将工作。 如果不起作用,请使用