项目结构:
- Webpack 正在将应用程序构建到
public
文件夹中 - 同时,我在那里有一些静态资产,例如:
public/assets/font-awesome-4.7.0/css/font-awesome.css
我想要的是:
- 我想出于开发目的运行我的
express
应用程序webpack-dev-middleware
- 我希望所有对静态资产的请求(不由 处理
webpack
)都从public
文件夹中提供
我是如何尝试这样做的:
第一次尝试
app.use(require('webpack-dev-middleware')(compiler, {
stats: { colors: true }
}));
app.use(require('webpack-hot-middleware')(compiler));
app.use('/', feathers.static(app.get('public'))); // express.static
这很好用,直到您index.html
在public
文件夹中。如果你有它 - 将提供静态版本,而不是根据webpack-dev-middleware
.
第二次尝试
然后我想 - 可能我必须express.static
只用于生产案例,我删除了它。现在我无法打开/assets/font-awesome-4.7.0/css/font-awesome.css
第三次尝试(现在有效的破解)
最后我让它工作了,但我对当前的解决方案不满意。我通过扩展 webpack 配置手动将所有assets
目录放入领域:webpack
new CopyWebpackPlugin([
{ from: 'public/assets/', to: 'assets' },
{ from: 'node_modules/bootstrap/dist/', to: 'vendor/bootstrap/dist' }
]),
但是,此方法假定需要指向他想要服务的每个静态文件webpack-dev-middleware
任何想法表示赞赏。
问候,