servidor - instalar angular 6
Usar Angular CLI y no poder usar rutas de imagen relativas en archivos CSS (3)
Configure una aplicación angular utilizando la CLI angular y cree un componente que tiene una imagen en el directorio de componentes.
Por ejemplo:
app/
---/common-components
------/header
---------/header.component.ts
---------/header.component.css
---------/images
--------------/image.png
Dentro del archivo CSS estoy usando el siguiente estilo:
.image {
background-url: url(''images/image.png'');
}
Cuando ejecuto la aplicación, me da un 304 No modificado y la imagen no aparece en la vista previa. Si utilizo una ruta absoluta ''/ src / app / common-components / header / images'' el archivo se carga correctamente. Sin embargo, esto no es ideal, ya que me gustaría que el componente fuera autosuficiente.
La respuesta que se da es:
Request URL:http://localhost:4201/images/test-image.jpeg
Request Method:GET
Status Code:304 Not Modified
Remote Address:127.0.0.1:4201
Con una vista previa en blanco
Parece que sigue siendo un problema con angular-CLI y webpack (usando 1.0.3).
Si agrega la carpeta de activos a angular-cli.json
y define la ruta relativamente, la compilación aún falla, al no encontrar la url(''someRelativeLink'')
recursos url(''someRelativeLink'')
.
Utilicé una solución y puse todas las definiciones de CSS en:
@Component({
styles: [...]
})
En lugar de un archivo styleUrls
.
Después de hacer eso todo estaba bien.
Todos los archivos / directorios de activos estáticos deben estar listados en el archivo angular-cli.json
.
Añadiendo activos
Para agregar sus activos puede:
- Coloque su archivo de imagen en la carpeta de
assets
defecto (que ya figura en el archivoangular-cli.json
. - O agregue un nuevo directorio dentro de la
app/
(por ejemplo, en su caso, podría usar laapp/images
, y luego haga referencia a eso enangular-cli.json
)
angular-cli.json:
{
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico",
"images"
]
}
]
}
Archivos de referencia
Al igual que @ jali-ai que se menciona en los comentarios background-url
debe ser background-image
y puedes referirte a tu activo de esta manera:
.image {
background-image: url(''images/image.png'');
}
Aquí hay un ejemplo del archivo angular-cli.json y una reference a un activo
.image {
background-image: url(''./assets/images/image.png'');
}