1

私はNode.js Google App Engineを何ヶ月か使っていて、常にexpress.staticソリューションを使って、私がnode.jsアプリケーションを配備したときのパブリックフォルダ。Node.jsアプリケーションGoogle App Engineの公開ディレクトリの404エラーフレキシブルプロダクション環境

Googleフレキシブルなプロダクション環境では、最近(私にはそれほど明白ではないが)、私はこの問題を解決するために苦労している。私のローカル開発環境では、すべてが問題ありません。私は(コメントアウトそれらを参照してください)express.static設定のさまざまな設定を試してみました

'use strict' 

const express = require('express') 
const app  = express() 
const path = require('path') 
const os  = require('os') 
const PORT = process.env.PORT || 8080 
const ENV  = process.env.NODE_ENV 

//app.use(express.static('public')) 
//app.use(express.static(path.resolve(__dirname, 'public'))) 
app.use(express.static(path.join(__dirname, 'public'))) 

app.listen(PORT,() => { 
console.log(`SYSTEM: App listening on port ${PORT}`) 
console.log(`SYSTEM: Press Ctrl+C to quit.`) 
}) 

app.get('/', (req,res) => { 
res.status(200).send('\ 
    <h1>TEST app.use(express.static("public")) in Google Cloud Flexibel App  Engine environment </h1>\ 
    <hr/>\ 
    <h4>YAML settings: runtime: nodejs env: flex</h4>\ 
    <h4>HOST   : '+`${os.hostname()}`+'</h4>\ 
    <h4>PORT   : '+`${PORT}`+'</h4>\ 
    <h4>__dirname : '+`${__dirname}`+'</h4>\ 
    <h4>mountpath : '+`${app.mountpath}`+'</h4>\ 
    <h4>env   : '+`${ENV}`+'</h4>\ 
    <h4>path resolved: '+`${path.resolve(__dirname, 'public')}`+'</h4>\ 
    <h4>path joined : '+`${path.join(__dirname, 'public')}`+'</h4>\ 
    <hr/>\ 
    <h2>If you see me <img src="./HB.png"> you can access "./HB.png" in the "public" directory.</h2>\ 
    <h2>If you see me <img src="/HB.png"> you can access "/HB.png" in the "public" directory.</h2>\ 
    <h2>If you see me <img src="HB.png"> you can access "HB.png" in the "public" directory.</h2>\ 
    <hr/>\ 
') 
}) 

:私はここに記載されている非常に基本的なテストアプリケーションを作成した問題を絞り込むために

。ただし、 gcloudアプリをデプロイした後、毎回 をGoogleプロダクションにデプロイすると、404(Googleログにもなります)が表示されます。現地の開発環境では、すべて問題ありません。

ここでは、本番環境の出力です:あなたは、GoogleのPROD上の画像へのリンクを見ることができるように

Local Development

Production

そしてここでは、ローカルの開発環境の出力ですHB.pngまでが壊れています。 Googleのログには404が表示されます。

誰か手掛かりがありますか?前もって感謝します !

答えて

0

奇妙なことに、私はGoogle Cloud SDKを再インストールして解決しました。

関連する問題