2012-05-21 3 views
1

내 응용 프로그램은 지금 당장 문제없이 Requirejs로 로컬로 작업했지만 원격 서버에 배치하면 Requirejs 관련 문제가 다시 나타납니다.Requirejs + jQuery가 실패했지만 리모컨으로 만 제공되는 경우에만

저는 실제 jquery 및 일부 jQuery 플러그인을로드하는 jQuery 래퍼 스크립트가 있습니다. jquery.cookie. 나는 jquery.cookie 스크립트가 평가 시점에서 정의되지 원격 서버,`jQuery를 '에 응용 프로그램에 액세스 할 때

## boot.js 

// Loaded via <script data-main="/boot.js" src="/vendor/requirejs/require.js"></script> 
require({ 
    baseUrl: '/vendor/requirejs/', 
    waitSeconds: 5, 
    paths: { 
    jquery: '/vendor/jquery/dist/jquery', 
    jQuery: '/assets/javascripts/jquery-wrapper', 
    } 
}, [ 
    'jQuery' 
], function($) { 
    ... 
    }); 
}); 

## /assets/javascripts/jquery-wrapper.js 

define([ 
    'order!jquery', 
    'order!/vendor/jquery-cookie/jquery.cookie.js' 
], function($) { 
    // In here I also define some on my own functions on $ 

    return $; 
}); 

문제

는 jQuery를로드되기 전에 실행중인 나에게 의미입니다.

Uncaught ReferenceError: jQuery is not defined jquery.cookie.js:47 
    (anonymous function) jquery.cookie.js:47 

나는 명령을 받지만! 접두사는 그런 일이 일어나지 않도록해야합니까?

다시 로컬로 작동합니다. 원격 서버에서 서비스를 제공 할 때만 문제가 발생합니다.

관련성이있는 경우 로컬로 씬 서버를 사용하고 있습니다. Nginx가 Thin에 절대적으로 모든 것을 프록 싱하고 있지만, 원격으로 나는 또한 Thin을 사용하지만 Nginx 뒤에 있습니다.

5 초 내에 파일을 찾을 수 없다는 표시가 없습니다. 콘솔에 오류가 즉시 나타납니다.

아무도 내가 잘못한 곳을 말해 줄 수 있습니까?

감사

+0

'주문! /vendor/jquery-cookie/jquery.cookie.js'가 잘못되었습니다. ".js"를 꺼내십시오. 또한 대부분의 사람들은 basePath와 paths 배열을 'configure'메소드의 호출에 둔다. 여기에 훨씬 더 많은 오류가있을 수 있지만, 나는이 두 가지는 문제로 두드러진다 고 생각합니다. –

답변

1

난 당신이 주문 플러그인을 사용하여 JQuery와로드하는 방식에 뭔가 잘못 표시되지 않습니다,하지만 원격으로 로컬이 아닌 작동하는 경우, 서버에 의해 반환 된 파일의 HTTP 헤더를 확인하실 수 있습니다 브라우저에서 자바 스크립트 파일을 캐시 할 수있는 경우에만 순서 플러그인이 작동하기 때문에 캐시 캐싱 (Cache-Control, Pragma, Expires, ...)을 지원하는지 확인하십시오. 그렇지 않은 경우

, 어쩌면 당신은 다른 플러그인 전에 JQuery와로드, 당신의 RequireJS 구성에 JQuery와 사용 우선 순위를로드 할 수 있습니다, 또는 당신이 원한다면, 당신은 또한 기능

define(['JQuery'], function ($) { 
    //Paste plugin code here. 
}); 
을에서 plungis 포장 정의 할 수 있습니다
+0

흠, 흥미 롭습니다. 나는 거기에 캐싱의 의미를 알지 못했습니다. 그것은 몇 가지를 설명 할 수 있습니다 (우리는 오늘도 로컬 서버로 이러한 문제를 보았습니다,하지만 그것은 Webrick이었습니다). 내가 할 수있는 한 빨리 확인하고 돌아올거야. 고마워요 가브리엘. – Pietro

+1

당신은 작은 아름다움 @ GabrielJürgens! – Pietro

관련 문제