我在Google App引擎上托管应用程序并拥有多个静态页面,我希望在自己的子域中提供这些页面。
因此,如果域名为example.com
,我希望page.example.com/file
提供文件example.com/page/file
。如果它是在带有重写的apache服务器上托管的,那么这将是一项简单的任务。
App Engine提供tutorial用于在php中模拟mod_rewrite,但这会重定向到页面上的其他脚本,而不是静态文件,这意味着静态文件不会被视为静态文件。除了读取php脚本中的文件外,还可以重定向到静态资源,但这意味着URL会为用户更改,并且他们会在地址栏中看到example.com/page/file
,我想避免这种情况。
在app.yaml中我可以做简单的重写,但只能在域之后的部分,而不是子域 - >目录替换。
答案 0 :(得分:0)
请注意,使用string fileToRead = @"D:\Table.DAT";
MemoryStream msAla = new MemoryStream(File.ReadAllBytes(fileToRead));
DFTable dft = new DFTable(msAla, false, tagFile, tname);
DataTable dt = dft.ToDataTable();
仿真意味着您不再将该文件作为静态内容提供服务,您将动态提供该文件,可能会影响您的实例时间。
仍然使用静态服务的一种方法是将您的应用/服务映射为mod_rewrite
和example.com
,并在page.example.com
文件的app.yaml
中的2个位置显示您的静态目录部分,像这样:
handlers
但请注意,它也适用于- url: /(<file_pattern_here>)$
static_files: static/\1
upload: static/<file_pattern_here>$
- url: /page/(<file_pattern_here>)$
static_files: static/\1
upload: static/<file_pattern_here>$
。如果你不喜欢,你可以创建第二个服务,让我们称之为page.example.com/page/file
,然后你分开工作:
映射到page
的旧服务(default
?)通过此处理程序响应example.com
个请求:
example.com/page/file
映射到- url: /page/(<file_pattern_here>)$
static_files: static/\1
upload: static/<file_pattern_here>$
的新page
服务通过此处理程序响应page.example.com
个请求:
page.example.com/file
为了使- url: /(<file_pattern_here>)$
static_files: static/\1
upload: static/<file_pattern_here>$
目录的内容在两个服务之间保持同步,您应该始终在这两个服务上进行部署,并且只需要根据需要将一个static
目标链接到2个服务中,像这样的东西:
static