Google app engine 使用app.yaml for go runtime从所有url文件名中删除.html
我试图找到一个指南或一些帮助,关于如何使用app.yaml for go运行时在google app engine上从所有url文件名中删除.html。我发现Google帮助文档中关于如何使用app.yaml的信息如果诚实的话,会让人很困惑 我在大约4个文件夹中有大约350个.html文件。我的app.yaml文件位于根目录中 如果它是一个.htaccess文件,我会尝试做类似下面的事情。有什么想法或建议吗Google app engine 使用app.yaml for go runtime从所有url文件名中删除.html,google-app-engine,webpack-dev-server,app.yaml,Google App Engine,Webpack Dev Server,App.yaml,我试图找到一个指南或一些帮助,关于如何使用app.yaml for go运行时在google app engine上从所有url文件名中删除.html。我发现Google帮助文档中关于如何使用app.yaml的信息如果诚实的话,会让人很困惑 我在大约4个文件夹中有大约350个.html文件。我的app.yaml文件位于根目录中 如果它是一个.htaccess文件,我会尝试做类似下面的事情。有什么想法或建议吗 RewriteEngine On RewriteCond %{REQUEST_FILEN
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
如果我想进一步压缩提问,我希望也能设置这个,这样当我使用Webpack dev server和build时,我也能有一个一致的使用/体验(即在url上没有.html结尾的情况下工作),但这可能会推动现在的问题,如果诚实的话,我目前还没有对这个问题进行过太多的研究 从技术上讲,至少在GAE中,您没有删除
.html
后缀,而是将其添加到请求的路径中,以获取要服务的静态资产的名称(我假设您实际的资产文件的名称中确实有.html
后缀)
这可能是可能的,这取决于您如何构造静态资产的名称空间
如果.html
文件的一个子集(或全部)可以由文件路径/名称上的单个正则表达式模式(而不是.html
后缀)匹配,而该模式与其他静态资产不匹配,那么就很容易了,您只需要两个处理程序语句。假设下面的静态文件位于应用程序的static
目录中,请根据需要进行调整
第一个handler语句将为请求提供.html
后缀,以防止为它们获取404(否则它们将被转换为类似/path/file.html.html
,这可能不是您命名资产的方式)
一个实际的例子,假设您的.html
文件将被请求为/some/path/.html
,您希望它们也可以作为/some/path/
访问。然后您将有以下处理程序语句:
# this serves your static/some/path/<file>.html asset as /some/path/<file>.html
- url: /(some/path/.*\.html)$
static_files: static/\1
upload: static/some/path/.*\.html$
# this serves your static/some/path/<file>.html asset as /some/path/<file>
- url: /(some/path/.*)$
static_files: static/\1.html
upload: static/some/path/.*\.html$
但这可能会干扰任何其他静态文件和应用程序的动态处理程序(如果有)。为了避免出现这种情况,您需要所有的都能被更具体的模式识别,并且您必须将它们的处理语句放在“一网打尽”的上面。这些html文件是静态资产吗?是的,它们是静态文件。
- url: /(<your_pattern>)$
static_files: static/\1.html
upload: static/<your_pattern>\.html$
# this serves your static/some/path/<file>.html asset as /some/path/<file>.html
- url: /(some/path/.*\.html)$
static_files: static/\1
upload: static/some/path/.*\.html$
# this serves your static/some/path/<file>.html asset as /some/path/<file>
- url: /(some/path/.*)$
static_files: static/\1.html
upload: static/some/path/.*\.html$
- url: /(.*\.html)$
static_files: static/\1
upload: static/.*\.html$
# catch-all pattern
- url: /(.*)$
static_files: static/\1.html
upload: static/.*\.html$