问题描述
unity发布webgl之后,修改在StreamingAssets 中的配置信息,修改之后读取的还是之前的配置信息
读取配置文件的代码
IEnumerator IE_WebGL_LoadWebSocketServerCopnfig()
{
var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, @"Config\WebServerConfig.txt"));
Debug.Log("输出加载路径:" + uri);
UnityWebRequest webRequest = UnityWebRequest.Get(uri);
yield return webRequest.SendWebRequest();
if (webRequest.result == UnityWebRequest.Result.ConnectionError)
{
Debug.LogError("输出报错:" + webRequest.error);
}
else
{
var strings = webRequest.downloadHandler.text.Split(':');
Debug.Log("加载WebSocketServer配置信息:" + strings[0] + ":" + int.Parse(strings[1]));
}
}
读取配置文件
修改配置文件之后再次读取,读取到的是修改之前的。
解决方案
设置UnityWebRequest 发送的请求头,设置Cache-Control
请求头为no-cache
来确保每次请求都不会从缓存中读取数据。
IEnumerator IE_WebGL_LoadWebSocketServerCopnfig()
{
var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, @"Config\WebServerConfig.txt"));
Debug.Log("输出加载路径:" + uri);
UnityWebRequest webRequest = UnityWebRequest.Get(uri);
webRequest.SetRequestHeader("Cache-Control", "no-cache");//设置无缓存
yield return webRequest.SendWebRequest();
if (webRequest.result == UnityWebRequest.Result.ConnectionError)
{
Debug.LogError("输出报错:" + webRequest.error);
}
else
{
var strings = webRequest.downloadHandler.text.Split(':');
Debug.Log("加载WebSocketServer配置信息:" + strings[0] + ":" + int.Parse(strings[1]));
}
}