Skip to content

Commit eeee9aa

Browse files
feat(guides): Translate to spanish (nuxt#596)
* feat(guides): Translating content/es/guides/directory-structure/assets.md into Spanish * feat(guides): Translating content/es/guides/directory-structure/components.md into Spanish * feat(guides): Translating content/es/guides/directory-structure/layouts.md into Spanish * feat(guides): Translating content/es/guides/directory-structure/static.md into Spanish * feat(guides): Translating content/es/guides/directory-structure/nuxt.md into Spanish * fix(guides): Fix typo on layouts guide * feat(guides): Translating content/es/guides/directory-structure/pages.md into Spanish * feat(guides): Translating content/es/guides/directory-structure/middleware.md into Spanish * fix(guides): Typo fixes on content/es/guides/directory-structure/ * feat(guides): Translating content/es/guides/directory-structure/dist.md into Spanish * feat(guides): Translating content/es/guides/directory-structure/plugins.md into Spanish * fix(guides): Fix some typos in content/es/guides/directory-structure/* * fix: minor correction Co-authored-by: Debbie O'Brien <[email protected]>
1 parent bfa7a56 commit eeee9aa

File tree

9 files changed

+1826
-0
lines changed

9 files changed

+1826
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
---
2+
title: recursos
3+
description: El directorio de `assets` (recursos), contiene recursos sin compilar, como imágenes, fuentes de texto o archivos de Sass y Stylus.
4+
position: 2
5+
category: directory-structure
6+
csb_link: https://codesandbox.io/embed/github/nuxt-academy/guides-examples/tree/master/04_directory_structure/02_assets?fontsize=14&hidenavigation=1&theme=dark
7+
videoScript:
8+
- assets-video.md
9+
questions:
10+
- question: ¿Qué directorios contienen los archivos sin compilar, Stylus o Sass, imágenes, o fuentes?
11+
answers:
12+
- static
13+
- assets
14+
- pages
15+
correctAnswer: assets
16+
- question: ¿Cómo puedes referenciar el directorio de recursos (`assets`) dentro de los Vue templates?
17+
answers:
18+
- '/assets/tu_imagen.png'
19+
- '@assets/tu_imagen.png'
20+
- '@/assets/tu_imagen.png'
21+
correctAnswer: '@/assets/tu_imagen.png'
22+
- question: ¿Cómo puedes referenciar el directorio de recursos dentro (`assets`) de archivos CSS?
23+
answers:
24+
- url("@assets/banner.svg")
25+
- url("assets/banner.svg")
26+
- url("@/assets/banner.svg")
27+
correctAnswer: url("@assets/banner.svg")
28+
- question: ¿Dónde se incluyen estilos css globales?
29+
answers:
30+
- En tu archivo index.vue
31+
- En el archivo nuxt.config.js
32+
- En el archivo de `layout` por defecto
33+
correctAnswer: En el archivo nuxt.config.js
34+
- question: ¿Qué propiedad css se usa para importar fuentes globales?
35+
answers:
36+
- font
37+
- head
38+
- css
39+
correctAnswer: head
40+
- question: ¿Cuál loader te permite añadir un archivo como base-64 data URL?
41+
answers:
42+
- file-loader
43+
- url-loader
44+
- image-loader
45+
correctAnswer: url-loader
46+
- question: ¿Cuáles son los aliases para el directorio del source (srcDir)?
47+
answers:
48+
- '@'
49+
- '@@'
50+
- '^'
51+
correctAnswer: '@'
52+
- question: ¿Cuáles son los aliases para el directorio del root (rootDir)?
53+
answers:
54+
- '@'
55+
- '@@'
56+
- '@root'
57+
correctAnswer: '@@'
58+
---
59+
60+
El directorio de `assets` (recursos), contiene recursos sin compilar, como imágenes, fuentes de texto o archivos de Sass y Stylus.
61+
62+
## Imágenes
63+
64+
Si deseas incluir algún recurso dentro del directorio de `assets` en los templates de `vue` puedes hacerlo usando `~/assets/tu_imagen.png` con una barra antes de `assets`.
65+
66+
```html
67+
<template>
68+
<img src="~/assets/tu_imagen.png" />
69+
</template>
70+
```
71+
72+
Si necesitar referir algún recurso dentro de `assets` en tu css, puedes hacerlo asi: `~assets/tu_imagen.png` (sin una barra antes de la palabra `assets`).
73+
74+
```css
75+
background: url('~assets/banner.svg');
76+
```
77+
78+
Si deseas trabajar con imágenes dinámicas, tienes que usar `require`.
79+
80+
```html
81+
<img :src="require(`~/assets/img/${imagen}.jpg`)" />
82+
```
83+
84+
<base-alert type="next">
85+
86+
Conoce más sobre [webpack Assets](/guides/directory-structure/assets#webpack-assets)
87+
88+
</base-alert>
89+
90+
## Estilos
91+
92+
Nuxt.js te permite definir cualquier archivo css, módulos, o librerías que desees configurar globalmente (incluido en cada página). Puedes añadir tus estilos fácilmente desde el `nuxt.config`
93+
94+
```js{}[nuxt.config.js]
95+
export default {
96+
css: [
97+
// Carga un módulo de Node.js directamente (en este caso es un archivo de Sass)
98+
'bulma',
99+
// Un archivo css dentro del proyecto
100+
'~/assets/css/main.css',
101+
// Un archivo SCSS dentro del proyecto
102+
'~/assets/css/main.scss'
103+
]
104+
}
105+
```
106+
107+
<base-alert type="info">
108+
109+
Si deseas usar `sass` asegúrate de que tengas los paquetes de `node-sass` y `sass-loader` instalados.
110+
111+
</base-alert>
112+
113+
<code-group>
114+
<code-block label="Yarn" active>
115+
116+
```bash
117+
yarn add -D node-sass sass-loader
118+
```
119+
120+
</code-block>
121+
<code-block label="NPM">
122+
123+
```bash
124+
npm install --save-dev node-sass sass-loader
125+
```
126+
127+
</code-block>
128+
</code-group>
129+
130+
Nuxt.js va a saber automáticamente que tipo de archivo tienes y usará el pre-procesador apropiado de webpack. Comoquiera tendrás que instalar los loaders requeridos si quieres usarlos.
131+
132+
## Fuentes
133+
134+
Puedes usar las fuentes locales si las añades dentro del directorio de `assets`. Cuando ya las hayas añadido, puedes usarlas en tu css con `@font-face`.
135+
136+
```
137+
-| assets
138+
----| fonts
139+
------| DMSans-Regular.ttf
140+
------| DMSans-Bold.ttf
141+
```
142+
143+
```css{}[assets/main.css]
144+
@font-face {
145+
font-family: 'DM Sans';
146+
font-style: normal;
147+
font-weight: 400;
148+
font-display: swap;
149+
/* Accesando el archivo de fuentes dentro del directorio de assets */
150+
src: url('~assets/fonts/DMSans-Regular.ttf') format('truetype');
151+
}
152+
153+
@font-face {
154+
font-family: 'DM Sans';
155+
font-style: normal;
156+
font-weight: 700;
157+
font-display: swap;
158+
src: url('~assets/fonts/DMSans-Bold.ttf') format('truetype');
159+
}
160+
```
161+
162+
<base-alert type="next">
163+
164+
Aprende cómo añadir fuentes externas (como las fuentes de Google Fonts), en el [capítulo de Meta Tags y SEO](/guides/features/meta-tags-seo#external-resources)
165+
166+
</base-alert>
167+
168+
## Recursos de Webpack
169+
170+
Nuxt usa `vue-loader`, `file-loader` y `url-loader` por defecto para servir los recursos del proyecto. También puedes usar el directorio de `static` para recursos que no deberían correr con Webpack.
171+
172+
## Webpack
173+
174+
[vue-loader](http://vue-loader.vuejs.org/) procesa automáticamente los archivos de estilos y templates con `css-loader` y el compilador de Vue template sin ningun tipo de configuración adicional. En este proceso de compilación, todos los URLs de los recursos, `<img src="...">``background: url(...)`y CSS `@import` se resuelven como dependencias de módulos.
175+
176+
Por ejemplo, tenemos este arbol de archivos:
177+
178+
```
179+
-| assets/
180+
----| imagen.png
181+
-| pages/
182+
----| index.vue
183+
```
184+
185+
Si usas `url('~assets/imagen.png')` dentro de tu CSS, se traducirá automaticamente a  `require('~/assets/imagen.png')`.
186+
187+
<base-alert>
188+
189+
Importante notar que el alias de `~/` no será resuelto correctamente dentro de tu CSS. Tienes que usar `~assets` (**sin la barra**) en el `url` o referencias en el CSS, ejemplo: `background: url("~assets/banner.svg")`
190+
191+
</base-alert>
192+
193+
Si referencias esa imagen en `pages/index.vue`:
194+
195+
```html{}[pages/index.vue]
196+
<template>
197+
<img src="~/assets/imagen.png" />
198+
</template>
199+
```
200+
201+
Será compilada a:
202+
203+
```js
204+
createElement('img', { attrs: { src: require('~/assets/imagen.png') } })
205+
```
206+
207+
Nuxt sabe que `.png` no es un archivo de Javascript, automáticamente configura webpack para que use [file-loader](https://github.com/webpack/file-loader) y [url-loader](https://github.com/webpack/url-loader) y los maneje por ti.
208+
209+
Los beneficios de estos loaders son:
210+
211+
`file-loader` te permite determinar donde deberia copiar y pegar el archivo, y como se debería nombrar usando hash de version para mejor manejo del cache. En producción, esto te permitirá usar long-term caching por defecto.
212+
213+
`url-loader` te permite incluir un recurso como base-64 data URL si son más pequeños que el límite provisto. Esto reduce significativamente el número de solicitudes HTTP para archivos triviales. Si el archivo es mayor que el límite, automáticamente vuelve a usar `file-loader`.
214+
215+
La configuración inicial para estos loaders es la siguiente:
216+
217+
```js
218+
// https://github.com/nuxt/nuxt.js/blob/dev/packages/webpack/src/config/base.js#L297-L316
219+
;[
220+
{
221+
test: /\.(png|jpe?g|gif|svg|webp)$/,
222+
loader: 'url-loader',
223+
query: {
224+
limit: 1000, // 1kB
225+
name: 'img/[name].[hash:7].[ext]'
226+
}
227+
},
228+
{
229+
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
230+
loader: 'url-loader',
231+
query: {
232+
limit: 1000, // 1kB
233+
name: 'fonts/[name].[hash:7].[ext]'
234+
}
235+
}
236+
]
237+
```
238+
239+
Esto significa que cada archivo con menos de 1KB va a ser incluido como base-64 data URL. De lo contrario, la imagen o fuente, será copiada en el directorio correspondiente (dentro del directorio de `.nuxt`) con un nombre que contiene la versión para el cache.
240+
241+
Cuando publiques tu aplicación con `nuxt` el template dentro de `pages/index.vue`:
242+
243+
```html{}[pages/index.vue]
244+
<template>
245+
<img src="@/assets/ut_imagen.png" />
246+
</template>
247+
```
248+
249+
Será transformado en:
250+
251+
```html
252+
<img src="/_nuxt/img/tu_imagen.0c61159.png" />
253+
```
254+
255+
Si quieres cambiar las configuraciones del loader, puedes usar [build.extend](/guides/configuration-glossary/configuration-build#extend)
256+
257+
<app-modal>
258+
<code-sandbox :src="csb_link"></code-sandbox>
259+
</app-modal>
260+
261+
## Aliases
262+
263+
Por defecto el directorio de fuente (srcDir) y el directorio del proyecto (rootDir) son lo mismo. Puedes usar el alias de `~` para el directorio fuente. En vez de escribir direcciones relativas como `../assets/tu_imagen.png` puedes usar `~/assets/tu_imagen.png`.
264+
265+
Ambos resultan en lo mismo.
266+
267+
```html{}[components/Avatar.vue]
268+
<template>
269+
<div>
270+
<img src="../assets/tu_imagen.png" />
271+
<img src="~/assets/tu_imagen.png" />
272+
</div>
273+
</template>
274+
```
275+
276+
Recomendamos que uses `~` como alias. `@` se puede usar pero no funcionará en todos los casos, casos como imágenes de background dentro del css por ejemplo.
277+
278+
Puedes usar el alias de `~~` o `@@` para accesar el directorio del proyecto (rootDir).
279+
280+
<base-alert type="info">
281+
282+
Tip: en un teclado español puedes accesar `~` with (`Option` + `ñ`) en Mac OS
283+
284+
</base-alert>
285+
286+
<quiz :questions="questions"></quiz>

0 commit comments

Comments
 (0)