我正在使用网络服务器通过运行 .netMF(netduino plus 2)的微控制器来控制家中的设备。下面的代码将一个简单的 html 页面写入通过 Internet 连接到微控制器的设备。
while (true)
{
Socket clientSocket = listenerSocket.Accept();
bool dataReady = clientSocket.Poll(5000000, SelectMode.SelectRead);
if (dataReady && clientSocket.Available > 0)
{
byte[] buffer = new byte[clientSocket.Available];
int bytesRead = clientSocket.Receive(buffer);
string request =
new string(System.Text.Encoding.UTF8.GetChars(buffer));
if (request.IndexOf("ON") >= 0)
{
outD7.Write(true);
}
else if (request.IndexOf("OFF") >= 0)
{
outD7.Write(false);
}
string statusText = "Light is " + (outD7.Read() ? "ON" : "OFF") + ".";
string response = WebPage.startHTML(statusText, ip);
clientSocket.Send(System.Text.Encoding.UTF8.GetBytes(response));
}
clientSocket.Close();
}
public static string startHTML(string ledStatus, string ip)
{
string code = "<html><head><title>Netduino Home Automation</title></head><body> <div class=\"status\"><p>" + ledStatus + " </p></div> <div class=\"switch\"><p><a href=\"http://" + ip + "/ON\">On</a></p><p><a href=\"http://" + ip + "/OFF\">Off</a></p></div></body></html>";
return code;
}
这很好用,所以我写了一个完整的 jquery 移动网站来代替简单的 html。这个网站存储在设备的 SD 卡上,使用下面的代码,应该写完整的网站来代替上面的简单 html。
但是,我的问题是 netduino 只将单个 HTML 页面写入浏览器,没有 HTML 中引用的 JS/CSS 样式文件。我怎样才能确保浏览器读取所有这些文件,作为一个完整的网站?
我为从 SD 读取网站而编写的代码是:
private static string getWebsite()
{
try
{
using (StreamReader reader = new StreamReader(@"\SD\index.html"))
{
text = reader.ReadToEnd();
}
}
catch (Exception e)
{
throw new Exception("Failed to read " + e.Message);
}
return text;
}
我将字符串代码=“等位替换为
string code = getWebsite();