2012-03-05 14 views
9

Configuré el principal de datos para Requirejs y de acuerdo con la documentación que debería establecer la baseUrl para todos mis archivos de script. Pero este no es el caso. Mi estructura de carpetas es la siguiente:Requirejs data-main no está configurando la baseUrl

Home/Index.html 
Content/scripts/main.js 
Content/scripts/libs/require/require.js 
Content/scripts/libs/jquery/require_jquery.js 
Content/scripts/libs/jquery/jquery-1.7.1.mins.js 

Aquí está la etiqueta de script en mi Index.HTML:

<script data-main="/PAWS/Content/scripts/main.js" src="/PAWS/Content/scripts/libs/require/require.js" type="text/javascript"></script> 

quiero suponer que establecería mi baseUrl a/PAWS/contenido/scripts/pero no funciona para mí. En mis main.js hago esto:

require(
    { paths: 
     { jquery: 'libs/jquery', 
      knockout: 'libs/knockout' 
     } 
    }, 

    ['jquery/require_jquery'], 


    function ($) { .... } 
); 

en mis require_jquery.js archivo hago esto:

define(["libs/jquery/jquery-1.7.1.min.js"], function() { 
    return jQuery; 
}); 

Pero me sale un error 404 diciendo que:

GET http://localhost/PAWS/Home/libs/jquery/jquery-1.7.1.min.js 404 NOT FOUND 

Verá ... mi baseUrl debería ser/PAWS/Content/scripts ... Pero ignora por completo mi configuración de atributos de datos principales y simplemente resuelve/PAW S/Home/para ser la baseUrl. ¿Qué estoy haciendo mal?

Respuesta

10

Desde el RequireJS API docs:

Sin embargo, si el nombre de la dependencia tiene una de las siguientes propiedades, se trata como un archivo normal camino, como algo que se pasó a una etiqueta <script src="">:

  • Termina en ".js".
  • Empieza con un "/".
  • Contiene un protocolo de URL, como "http:" o "https:".

partir de esto, parece que sus explícitas ".js" en el final de libs/jquery/jquery-1.7.1.min.js está confundiendo su camino re: baseUrl. Pruebe libs/jquery/jquery-1.7.1.min en su lugar.

+0

Señor, usted es un genio. Muchas gracias. –

Cuestiones relacionadas