我正在开发reactjs应用程序并使用webpack捆绑应用程序。Webpack - 创建捆绑包时为各种资产和资源设置路径上下文
这是我如何设置我的index.html文件中的CSS文件的路径。
<link rel="stylesheet" href="/styles.css" media="screen" charset="utf-8">
当我运行命令npm run dev
本地,系统上的端口8080上运行一个Web服务器,我可以访问应用程序。所有这些工作正常。
当我在不同的环境中部署应用程序时,由于某种策略,我们需要将应用程序托管在一个子文件夹下。
这意味着在应用程序中使用相对路径的任何资源都需要意识到这种变化。
假设子文件夹名称为TEST
。在这种情况下,本地可获得的资源为http://localhost:8080/abc.png,现在我们将以http://localhost:8080/TEST/abc.png的形式提供。
我不知道什么是处理这种情况的最佳方法。我在想的是我将创建一个全局变量调用window_context
,并且使用相对路径的每个资源都将使用此变量。
所以包括styles.css
不是我会用
<link rel="stylesheet" href="{window_context}/styles.css" media="screen" charset="utf-8">
如果我运行应用程序在本地变量将是空的,如果我使用的网络包来创建一个包,我将window_context = '/TEST'
。
如何使用webpack访问变量&根据我正在运行的命令为其分配一个值。
所以如果我说npm run dev
(其在本地运行应用程序并启动Web服务器)的window_context应设置为“”,如果我跑npm run build
(它创建了一个包),就应该设置window_context到“/ TEST '
谢谢你的回复。我明白你在说什么。你可以请包括一些例子\链接来展示你在说什么。 – SharpCoder
@SharpCoder添加了一个简单的例子来说明 –
谢谢你快速回复。投票给出了很好的答案并增加了一个例子,但我认为我的问题在前面并不清楚。现在我已经更新了这个问题。 – SharpCoder