我正在制作一个Delphi XE5 VCL表单应用程序,主表单上有一个TIdHTTPServer,而CommandGet过程是一个IdHTTPServer

procedure TForm1.IdHTTPServerCommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var responce: TStringList;
begin
if pos('someString', ARequestInfo.UnparsedParams) > 0 then
   begin
      responce:= TStringList.Create;
      try
         responce.Add('<html>');
         responce.Add('<head>');
         responce.Add('<title>Index</title>');
         responce.Add('<script src="E:\ProjectFolder\script.js"></script>')
         responce.Add('</head>');
         // HTML content
         responce.Add('</html>');
         AResponseInfo.ContentText := responce.Text;
      finally
         responce.Free;
      end;
  end;
end;


当我更改项目目录时,浏览器看不到.js文件。我的问题是如何在更改项目目录时设置对.js文件的引用以使其可用。

最佳答案

最直接的解决方案是将脚本包含在html中:

var
  scriptContent: TStringList;

...
responce.Add('<script type="text/javascript">');
scriptContent := TStringList.Create;
try
  scriptContent.LoadFromFile('<name of the script file>');
  responce.AddStrings(scriptContent);
finally
  scriptContent.Free;
end;
responce.Add('</script>');

09-25 12:06