React / Webpack:如果生成构建在别名路径下运行,如何转换相对资源URL?

时间:2017-02-15 11:24:54

标签: reactjs webpack react-router

我已经使用Create React App设置了一个应用程序,需要将其部署到生产服务器,其中应用程序以别名路径运行,即

http://server.com/alias/

而不是

http://server.com

我也在使用Redux版本的React Router。我的问题是图像网址没有正确翻译。如果我使用绝对路径,则由于服务器在root下查找它们,因此无法找到图像。如果我使用相对路径,如果React路由器修改URL以指向比/别名更深的位置,则无法找到图像,例如, /别名/搜索。

做完"弹出"对于Create React App,我看到我可以设置一个"主页"使用package.json的路径。这解决了Webpack在主索引页面中包含JavaScript和CSS文件时必须正确设置别名的问题。

但是这个选项不会告诉React将别名应用于链接包含的资源。是否有任何插件会告诉React将我的别名添加到所有链接而不必在React代码中对它们进行硬编码?

另外,我还没有找到一个选项告诉React Router它还应该使用所有链接的别名。目前,我正在路线中对它们进行硬编码。这工作正常,位也是次优的。

1 个答案:

答案 0 :(得分:-1)

为生产构建时,在输出属性

下设置publicpath选项
module.exports = { 
    //....
    output : {
       publicPath: "/alias/"
    }
    // additional configuration
};