我有一个nodejs后端和一个reactjs前端。我正在使用gcloud
flex环境(应用程序引擎),并希望使用CDN提供所有前端文件。我不想让请求碰我的nodejs服务器。我无法将我的项目app.yaml配置为执行相同操作。
我怀疑CDN不能满足我的请求,因为如果我在nodejs代码中注释以下行,我将无法再访问index.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
有没有一种方法可以配置应用程序引擎,以使静态文件请求不对我的nodejs后端服务器做出反应?
谢谢
您正在将标准GAE env
app.yaml
元素
(静态内容配置)混合到flex
env应用程序中app.yaml
。
在flex环境中,提供静态内容的方式有所不同。
您express.static
用于提供静态文件的基于方法实际上相当于从应用程序提供:
通过您的应用服务
大多数Web框架都支持提供静态文件。在此示例中,应用程序使用express.static中间件将
./public
目录中的文件提供给/static
URL。
要在没有请求到达您的应用程序的情况下提供静态内容,您需要遵循“ 从Cloud
Storage提供服务”:
从Cloud Storage存储桶提供静态文件的示例
这个简单的示例创建了一个Cloud Storage存储桶,并使用Cloud SDK上传了静态资产:
创建一个存储桶。以项目ID命名存储桶是很常见的,但不是必需的。存储桶名称必须是全局唯一的。
gsutil mb gs://<your-bucket-name>
设置ACL以授予对存储桶中项目的读取访问权限。
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/<your-bucket- name>/static/....
有关如何使用Cloud
Storage服务静态资产(包括如何通过自定义域名提供服务)的更多详细信息,请参阅如何托管静态网站。有关如何使用Cloud Storage API从应用程序内部动态上载,下载和操作文件的更多信息,请参阅《使用Cloud
Storage》。
我有一个nodejs后端和一个reactjs前端。我正在使用gcloud flex环境(应用程序引擎),并希望使用CDN服务所有前端文件。我不希望请求触摸我的nodejs服务器。我无法配置我的项目app.yaml做同样的事情。 我怀疑我的请求没有得到CDN的服务,因为如果我在我的nodejs代码中注释下面一行,我就无法再访问索引。html。 下面是YAML文件。 有没有办法配置app engine
问题内容: 我有一个具有以下结构的Web应用程序: 我已经设法使用nginx和wsgi运行Web应用程序,但是问题是没有提供静态文件,我的意思是,当我转到它们的URL时,服务器找不到它们。它给我404。 这是我的nginx配置文件部分: 缺少什么吗? 问题答案: 将此添加到你的nginx配置 用你应用的绝对路径替换时,你应该注意它不包含静态目录,并且其中的所有内容都将存储在中。
问题内容: 所以这很尴尬。我有一个应用程序,该应用程序已集成在一起,现在它只提供一个静态HTML页面,其中包含指向CSS和JS的链接。而且我找不到文档中描述返回静态文件的位置。是的,我可以使用,但是我知道数据没有模板化。我还以为或者是正确的事情,但我不能让这些工作。同时,我正在打开文件,阅读内容,并装配Response具有适当mimetype的: 有人要为此提供代码示例或网址吗?我知道这将变得简单
我有一个Go1.11应用程序,目录如下: 和我的app.yaml: 在本地使用dev_appserver.py时,一切都可以正常工作,但部署到AppEngine后,我的所有静态资产都得到了404S。想法?
问题内容: 我有一个应用程序,该应用程序已集成在一起,现在它只提供一个静态页面,其中包含指向CSS和JS的链接。而且我找不到文档中描述返回静态文件的位置。是的,我可以使用,但是我知道数据没有模板化。我还以为或者是正确的事情,但我不能让这些工作。同时,我正在打开文件,阅读内容,并装配具有适当的: 有人要为此提供代码示例或网址吗?我知道这将变得简单。 问题答案: 首选方法是使用nginx或其他Web服
问题内容: 我想在localhost上的gunicorn下运行django项目。我安装并集成了Gunicorn。当我跑步时: 它可以工作,但是没有任何静态文件(css和js) 我在settings.py中禁用了debug和template_debug(将它们设置为false),但是仍然相同。我想念什么吗? 我称静态为: 问题答案: 在开发模式下以及使用其他服务器进行本地开发时,请将其添加到url.