2011-09-26 7 views
16

En rails 3.1, cuando precompila los activos, los rails crean un directorio público/de activos y agregan archivos allí.¿Agrega public/assets en el control de versión?

¿Tiene control de versiones public/assets/*?

+1

¿Sientes que tu pregunta fue respondida? Si es así, acéptalo; de lo contrario, sería útil hacer un comentario sobre lo que te estás perdiendo. – Travis

Respuesta

5

Estaba buscando una respuesta a esto también. Me encontré con la Guía Oficial de rieles tiene algunas ideas sobre esto:

http://guides.rubyonrails.org/asset_pipeline.html#local-precompilation

He aquí una cita de la sección correspondiente (énfasis añadido):

Hay varias razones por las que es posible que desee precompile activos a nivel local. Entre ellos se encuentran:

  • Es posible que no tenga acceso de escritura a su sistema de archivos de producción.
  • Puede estar implementando en más de un servidor y desea evitar la duplicación de trabajo.
  • Puede realizar implementaciones frecuentes que no incluyen cambios de activos.

compilación local permite que se comprometan los archivos compilados en control de código fuente, y desplegar de forma normal.

Hay tres salvedades:

  • No debe ejecutar la tarea de distribución Capistrano que precompila activos.
  • Debe asegurarse de que todos los compresores o minificadores necesarios estén disponibles en su sistema de desarrollo.
  • debe cambiar la siguiente configuración de configuración de la aplicación:

En config/environments/development.rb, coloque la siguiente línea:

config.assets.prefix = "/dev-assets" 

El cambio prefix hace Piñones utilizan una URL diferente para servir activos en el modo de desarrollo, y pasar todas las solicitudes a Piñones. El prefijo aún se establece en /assets en el entorno de producción. Sin este cambio, la aplicación serviría los activos precompilados de /assets en desarrollo, y no vería ningún cambio local hasta que vuelva a compilar activos.

En la práctica, esto le permitirá precompilar localmente, tener esos archivos en su árbol de trabajo y asignar esos archivos al control de fuente cuando sea necesario. El modo de desarrollo funcionará como se espera.

Por lo tanto, parece que podría ser una buena idea colocar activos precompilados en VCS ocasionalmente.

12

Uso Capistrano para implementar. El último paso es compilar los activos. Nada como eso se verifica en el control de la versión.

https://github.com/capistrano/capistrano/wiki/Documentation-v2.x

Comprobación en activos compilados, archivos .gz/etc, se acaba el desorden de control de versiones.

+0

Tardan unos 10 minutos buenos para 'activos de rake: precompile' para ejecutar en mi micro instancia de Amazon EC2. Entonces la implementación lleva al menos 10 minutos. En mi cuadro de desarrollo, es menos de un minuto. Con eso en mente, ¿cree que tiene sentido controlar la versión de los activos compilados? –

+0

Al final de [episodio de Railscast # 341] (http://railscasts.com/episodes/341-asset-pipeline-in-production), Ryan Bates menciona una idea de compilar los activos en una máquina local y luego modificar el capistrano deploy task para sincronizar los archivos al servidor de producción; es decir, NO ponerlos en control de versión. Suena bien. –

+1

Un recordatorio: después de compilar los activos, su entorno de desarrollo puede optar por atenderlos directamente en lugar de generarlos según sea necesario. Una solución rápida para mí fue eliminar '/ public/assets' después de que se completara la tarea anterior' cap assets: precompile' y 'rsync'. –

Cuestiones relacionadas