2010-01-26 16 views
11

Estoy en el proceso de probar un sitio de Magento 1.3 usando Magento 1.4. Estoy viendo un comportamiento muy extraño e inconsistente. En lugar de incluir la URL de mis archivos javascript, Magento es la creación de etiquetas con la ruta del sistema de archivos completa de los archivos js, como tan:¿Por qué Magento 1.4 incluye archivos javascript por ruta del sistema de archivos?

<script type="text/javascript" src="/home/my_username/public_html/js/prototype/prototype.js"></script> 

creo que esto está relacionado con los nuevos "Temas de JavaScript y CSS se combinaron para una función de "archivo". De hecho, al iniciar sesión en el administrador y haga clic en "Flush JavaScript/CSS Caché", entonces la primera carga de la página es exitosa, y no veo un solo JS incluyen similar a:

<script type="text/javascript" src="/media/js/5b8cfac152fcb2a5f93ef9571d338c54.js"></script> 

Pero cargas de edad subsiguientes carga de vez solo archivo JS, con los nombres completos de ruta. Lo cual obviamente no va a funcionar. ¿Alguien tiene alguna idea sobre lo que podría estar mal o cómo solucionar este problema?

+0

@Mattias Bomelin - no he encontrado una respuesta a esto todavía. Cuando lo haga, lo publicaré como una respuesta aquí y lo aceptaré. Marque esta pregunta como favorita haciendo clic en la estrella debajo de la flecha hacia abajo si desea hacer un seguimiento de la misma. – Josh

Respuesta

9

vaya a Sistema -> Configuración -> Configuración del desarrollador -> Configuración de Javascript -> Fusionar archivos de JavaScript (beta) y configurarlo en "no". Es realmente una versión beta: D

+1

este problema me ocurre también en 1.7.0.1 ... deshabilitar 'dev/js/merge_files' fue el única solución para mí – WonderLand

+1

Si configurar Merge Javascript y Merge CSS a "No" soluciona su problema, el problema subyacente probablemente sea que su directorio var/no es escribible. Intente verificar los permisos y la propiedad. – Eric

+0

Gracias :) ¡Trabajó para mí! Mi problema era que no podía ver imágenes en el Editor "Almacenamiento multimedia", incluso el botón crear carpeta no funcionaba y los archivos de navegación y el botón cargar archivo no estaban visibles. –

0

¿Cuáles son los valores para los diversos campos Base URL bajo "Web" en la configuración? Debe ser algo similar a

{{unsecure_base_url}}skin/ 

para la URL de la base de la piel.

+0

Sí, eso es lo que era. Incluso traté de reemplazar {{unsecure_base_url}} con http://my.domain.name/ en vano ... – Josh

0

El problema está relacionado con la opción de combinación de javascript. Desafortunadamente, el formulario no funciona sin javascript. Hay que cambiar la opción merge_files en app/código/core/Mago/Core/etc/config.xml a 0.

 <js> 
      <merge_files>0</merge_files> 
      <deprecation>0</deprecation> 
     </js> 

Después de eso me quita todos los archivos de caché y archivos de sesión en el directorio var.

8

La edición de config.xml no funcionó, tuve que deshabilitarla en la base de datos.

en la tabla 'core_config_data' establecer el valor de la fila con el camino de 'dev/js/merge_files' (CONFIG_ID 772) a ''.

¡Gracias por apuntarme en la dirección correcta!

8

que tenían el mismo problema y se le ocurrió la siguiente solución:

  1. Compruebe que los permisos en los medios de comunicación/js pertenecen al mismo usuario que la carpeta de la instalación de Magento es.
  2. Limpie la caché de CSS/JS con el administrador.

La combinación de los dos hizo que las cosas volvieran a la normalidad.

+0

Este es un problema de permisos simple, aunque con una manifestación extraña. Asegúrese de que su carpeta 'media' sea editable por el usuario/grupo del servidor web (como usted quiera) y todo funcionará bien. – Nick

+0

En algunos casos (como en el mío), es posible que no pueda siquiera entrar en el administrador. Seguí el consejo en el sitio de Nick (http://www.nicksays.co.uk/2010/03/magento-including-javascript-by-system-path/). Tuve que ejecutar una consulta para cambiar la configuración temporalmente, luego iniciar sesión y vaciar la memoria caché, y luego cambié la configuración de nuevo (de nuevo con una consulta, ya que mysql ya estaba abierto de todos modos). Consulta: UPDATE core_config_data SET 'value' = 0 WHERE' path' = 'dev/js/merge_files'; También me pregunto si eliminar var/cache/* funcionaría. –

1

La edición de config.xml no funcionó, tuve que deshabilitarla en la base de datos.

En la tabla core_config_data establezca el valor de la fila con la ruta dev/js/merge_files (config_id 772) to '0'.

¡Gracias por apuntarme en la dirección correcta!

Esta solución me ha funcionado, gracias.

1

Tuve el mismo problema.

Es porque magento no puede encontrar un archivo javascript. Mire su /var/log/exception.log (Tienes que habilitar el registro en el Sistema -> Configuración -> Opciones de desarrollo)

En mi registro fue el siguiente error:

excepción 'excepción' con el mensaje 'Advertencia: filemtime() [function.filemtime]: error de stat para /var/www/js/calendar/lang/calendar-en.js en/var/www/app/code/core/Mage/Core/Helper/Data .php en la línea 631 'en /var/www/app/code/core/Mage/Core/functions.php:245

¡Así que creé el archivo y listo!

0

en magento 1.4 el config_id es 879 (para mí) Establecer este valor en 0 me devolvió todos mis archivos .js. Súper extraño

4

Comprueba si tu carpeta multimedia es editable por el usuario con el que se ejecuta el servidor web. tuve un enlace simbólico a una carpeta que sólo se puede escribir por root

chown -R www-data:www-data media 

ayudó.

+0

Esto funcionó para mí en 1.8 –

11

Fue un problema de permisos en mi caso. Estos comandos ssh se ejecutan en el directorio raíz de Magento arreglaron:

# chown all to proper user and group, ie. www-data 
    chown -R www-data:www-data * 
    # change all files permissions to 644 
    find . -type f -exec chmod 644 {} \; 
    # change all directories permissions to 755 
    find . -type d -exec chmod 755 {} \; 
    # change all to be writable in var and media directories 
    chmod -R 777 var/ media/ 

Si aún así no funciona, entonces cambiar estos dos valores para la columna en el camino core_config_data en MySQL de "1" a "0":

  • dev/css/merge_css_files
  • dev/js/merge_files
+0

Haga suer su servidor claro así como Magneto Cache ... Entonces haga lo que dice @marcinsdance ...¡Todo va a funcionar! Muchas gracias. –

+0

Esta fue la solución para mí. ¡Gracias! – Anderscc

+0

Una buena manera de arreglar el problema de permisos ... Funcionó para mí .... –

Cuestiones relacionadas