问题背景:在使用App Engine标准环境与Express.js框架构建Web应用程序时,如果需要提供静态文件,可以在app.yaml文件中指定静态文件目录。但有时会遇到问题,即虽然静态文件放在指定目录下,但在浏览器中访问时仍会显示“文件未找到”的错误页。
解决步骤:以下是可能的
示例 app.yaml 文件:
runtime: nodejs10
env: standard
handlers:
# serve all files in /public directory
- url: /public
static_dir: public
在这个例子中,访问 example.com/public/somefile.css
会寻找 public/somefile.css
文件是否存在。而不是在请求时将URL映射到文件系统中的另一个位置。
检查静态文件名是否正确。查看静态文件名是否有大小写区分或文件扩展名是否正确。
重新启动App Engine服务。在某些情况下,App Engine服务可能需要重新启动才能正确提供静态文件。
检查Error,查看是否在控制台中生成任何错误消息。在App Engine控制台中查看错误消息和日志,确定是否可以从中得到任何有用的信息。
确保文件没有被排除在Express middleware中。检查Express.js程序中是否有任何中间件,例如 app.use(express.static('public'))
,意外排除了静态文件。