我有一个nodejs后端和一个reactjs前端。我正在使用gcloud flex环境(应用程序引擎),并希望使用CDN服务所有前端文件。我不希望请求触摸我的nodejs服务器。我无法配置我的项目app.yaml做同样的事情。
我怀疑我的请求没有得到CDN的服务,因为如果我在我的nodejs代码中注释下面一行,我就无法再访问索引。html。
app.use('/', express.static(path.resolve('./frontend/dist')));
下面是YAML文件。
handlers:
- url: /(.*\.html)
mime_type: text/html
static_files: frontend/dist/\1
upload: frontend/dist/(.*\.html)
- url: /styles/(.*\.css)
mime_type: text/css
static_files: frontend/dist/styles/\1
upload: frontend/dist/styles/(.*\.css)
- url: /scripts/(.*\.js)
mime_type: text/javascript
static_files: frontend/dist/scripts/\1
upload: frontend/dist/scripts/(.*\.js)
- url: /images/(.*\.(bmp|gif|ico|jpeg|jpg|png))
static_files: frontend/dist/images/\1
upload: frontend/dist/images/(.*\.(bmp|gif|ico|jpeg|jpg|png))
- url: /
static_files: frontend/dist/index.html
upload: frontend/dist/index.html
- url: /.*
script: IGNORED
secure: always
有没有办法配置app engine,使静态文件请求不会对我的nodejs后端服务器做出反应?
谢谢
你把标准的GAE env应用搞混了。yaml
元素(静态内容配置)进入flex env应用程序应用程序。yaml
。
在flex环境中,为静态内容提供服务是不同的。
您的express.static
-基于服务静态文件的方法实际上对应于从您的应用程序服务:
从你的申请中送达
大多数Web框架都包含对提供静态文件的支持。在这个示例中,应用程序使用express.static中间件来提供从./public
目录到/静态
URL的文件。
要提供静态内容而不让请求击中你的应用程序,你需要遵循云存储的服务:
从云存储桶提供静态文件的示例
这个简单的示例创建一个云存储桶,并使用云SDK上传静态资产:
>
创建一个存储桶。以您的项目ID命名您的存储桶是常见的,但不是必需的。存储桶名称必须是全局唯一的。
gsutil mb gs://<your-bucket-name>
设置ACL以授予bucket中项目的读取权限。
gsutil defacl set public-read gs://<your-bucket-name>
将项目上传到存储桶。rsync命令通常是上传和更新资产的最快、最简单的方法。您也可以使用cp。
gsutil -m rsync -r ./static gs://<your-bucket-name>/static
您现在可以通过https://storage.googleapis.com/
有关如何使用Cloud Storage为静态资产提供服务的更多详细信息,包括如何从自定义域名提供服务,请参阅如何托管静态网站。
有关如何使用云存储API从应用程序中动态上载、下载和操作文件的更多信息,请参阅使用云存储。
问题内容: 我有一个nodejs后端和一个reactjs前端。我正在使用gcloud flex环境(应用程序引擎),并希望使用CDN提供所有前端文件。我不想让请求碰我的nodejs服务器。我无法将我的项目app.yaml配置为执行相同操作。 我怀疑CDN不能满足我的请求,因为如果我在nodejs代码中注释以下行,我将无法再访问index.html。 以下是YAML文件。 有没有一种方法可以配置应用
问题内容: 有什么方法可以检查某个方法是静态调用还是在实例化对象上调用? 问题答案: 请尝试以下操作: 资料来源:通过Google的seancoates.com
我从Apache切换到Nginx,使用apache,皮肤文件夹中的所有静态文件(图像、css、javascript)都直接由Apache提供服务。 示例: 我读了一些关于Nginx和Plone的文档,但我没有看到。下面是Plone.orgconf的例子:https://github.com/plone/plone-org-nginx/blob/master/nginx.conf 所以,我的问题是:
我想为app Engine中的应用程序提供存储在谷歌云存储中的静态文件。在HTML文件中,我使用了 如果登录用户的谷歌帐户有访问bucket的权限,它可以正常工作。由于应用程序可以被任何人访问谁将没有访问我的桶,在这种情况下,静态文件将不会被服务。 是否有可能使bucket中的静态文件公开可用?我将静态文件(custom.css)设置为“共享公共”(ACL设置为“public-read”),但其他
我有一个在谷歌应用程序引擎上运行的Django应用程序。 我希望所有对静态内容的请求将不是由Django应用程序服务,而是一个谷歌云存储桶,我已经在上面上传了应用程序需要的所有内容。 存储桶具有公共访问权限,我可以通过浏览器查看静态内容,其URL如下所示: https://www.mydjangoapp.com/static/image.jpg 将由存储提供服务:https://storage.g
我在我的服务器上设置了一个1年的缓存控制。如何对AppEngine说“清楚!”要从服务器获取新版本? 配置为Flex自定义环境