angular-cli: using deploy-url and base-href yields in wrong assets path
Bug Report or Feature Request (mark with an x
)
- [x] bug report -> please search issues before submitting
- [ ] feature request
Versions.
@angular/cli: 1.1.1 node: 8.1.1 os: darwin x64
Repro steps.
create a new application and use a --base-href=/ui/
and --deploy-url=/ui/
while having a stylesheet of:
.login-body {
background: rgba(0, 0, 0, 0) url("/assets/images/bg.png") no-repeat scroll 0 0 / cover;
}
The output will then be .login-body{background:transparent url(/ui/ui/assets/images/bg.png) no-repeat scroll 0 0/cover}
in both, build --prod --deploy-url=/ui/ --base-href=/ui/
and on serve --deploy-url=/ui/ --base-href=/ui/
Mention any other details that might be useful.
Actually if I remove one of the things either base-href
and deploy-url
it would work, however if I omit base-href
routing will actually re-initialize the application everytime I open a [href]
or ng-href
link (hybrid app). if I omit deploy-url
i will get 404 well I might make it work without deploy-url since I proxy the ng serve in my application and I can strip the path, but I still think that setting both shouldn’t end in a assets path of /ui/ui/
.
What’s even more strange is that the $icon-font-path
and $fa-font-path
of font-awesome and boostrap are working correctly and don’t double add a /ui/
Basically I think that without --deploy-url
I can fully use my application since angular-cli omits relative url’s so the script path is ui/...
. However it would’ve been great to use absolute-urls for everything which I can enforce with --deploy-url
.
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 7
- Comments: 16 (3 by maintainers)
Commits related to this issue
- angular bug https://github.com/angular/angular-cli/issues/6730 — committed to ling-apps/ling-apps.github.io by blandine 7 years ago
- Updated @angular/cli Latest update might fix my deployment issue: https://github.com/angular/angular-cli/issues/6730 Funny stuff here. Error on ng serve: https://puu.sh/yJxDb/00ca4e862d.png Solution... — committed to progdawn/inksauce-angular by progdawn 7 years ago
Is this is still not solved? I’m using angular cli 6.2.3, ng build with the base-href. For example
ng build --c prod --base-href /app/
. Problem is IIS tries to look for assets in the the root folder not in the app folder specified. It should be here/myserver/app/assets/
. But it tries to find stuff in/myserver/assets/
. So it obviously fails. This is more than just a little annoying, Google??@filipesilva i am still having this issue with ng build --base-href /test/ --deploy-url /test/. When i deploy to the server, assets path is falling back to root of the server and failing lo load.
I followed the reference #6320 you have given, still having the same issue
<img src="./assets/logo.svg">
Worked for me thx @manbearwizGuys, this is important for us. You built an app, you deploy it and you can’t show it to a client because of this! The app seem completely broken to a client!
I just had the exact problem as described by @schmitch. Instead of url(“/assets/images/bg.png”), try to use the …/ so something like url(“…/…/…/assets/images/bg.png”) depending on however many directories up the assets folder is.
In response to @clydin: I don’t experience what you describe with --base-href and --deploy-url. If I just use --base-href by itself then none of my js resources get loaded up because they’re trying to be loaded from / instead of /ui/
Changing to relative paths fixed this for me when doing a prod build with a specified
--base-href
. For example changing:to
We are having the same problem with
--base-href
and--deploy-url
prepending the service prefix twice on image URL’s in the/assets
folder. 😢