My project directory looks like
**demo**
-->
**ui**-->
**dist**-->
**ui**-->
*.html
*.js files
In my app.yaml
runtime: python27
api_version: 1
threadsafe: true`enter code here`
handlers:
- url: /
static_files: dist/\1/index.html
upload: dist/(.*)/(.*)
Whenever I deploy my app and hit the URL I see getting 404 Failed to load resource: the server responded with a status of 404 () for all the files except index.html.
Any help how to proceed further would be appreciated.
Read stack overflow related questions but no luck
Here I share the approach I use.
app.yaml should looks like :
runtime: python27
threadsafe: true
api_version: 1
handlers:
- url: /(.+\.js)
static_files: app/\1
upload: app/(.+\.js)
- url: /(.+\.css)
static_files: app/\1
upload: app/(.+\.css)
- url: /(.+\.png)
static_files: app/\1
upload: app/(.+\.png)
- url: /(.+\.jpg)
static_files: app/\1
upload: app/(.+\.jpg)
- url: /(.+\.svg)
static_files: app/\1
upload: app/(.+\.svg)
- url: /favicon.ico
static_files: app/favicon.ico
upload: app/favicon.ico
- url: /(.+\.json)
static_files: app/\1
upload: app/(.+\.json)
- url: /(.+)
static_files: app/index.html
upload: app/index.html
- url: /
static_files: app/index.html
upload: app/index.html
These handlers rules could be optimized. Here, I kept them in a detailed form with each file type.
Directory structure of deploy folder should looks like:
/deploy
app.yaml
/app => generated by ng build
index.html
...bundles..js
/assets
...
This default service will be served at https://YOUR_PROJECT_ID.appspot.com as usual.
Maybe these links may help your :
My answer to an other question
Deploy Angular 2/4/6 App on Google App Engine by Anoop Sharma
Here is my setup. You'll notice that there are some subtle nuances with the other answers. These nuances allowed me to deploy my app. And the deployment file is significangtly simpler.
It works with angular 9 and the current version of the app engine (as of 03/2020)
First things first, the angular.json file sets the target build directory as follows:
"build": {
...
"options": {
"outputPath": "dist/my-awesome-app",
...
next, you will have to create a app.yaml in your dist directory. This is your deployment file. Watch out because dist is not tracked by git. So you'll either have to fiddle with your .gitignore file or copy your app.yaml file in dist before deploying. (I chose the former).
Your project should then look like this:
> my-awesom-app
| > dist
| | > my-awesome-app
| | $ app.yaml
With app.yaml and dist/my-awesome-app at the same level.
Next your app.yaml file should look like this
runtime: nodejs12
handlers:
- url: /
static_files: my-awesome-app/index.html
upload: my-awesome-app/index.html
- url: /
static_dir: my-awesome-app
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With