2016-09-13 2 views
0

양식을 사용하여 사용자 의견을 입력하는 웹 페이지를 만들었습니다. 성공적으로 제출하면 자바 스크립트를 사용하는 동일한 페이지에 감사 메시지가 표시됩니다.외부 파일에 Javascript 파일을 실행하지 않았습니다.

자바 스크립트를 동일한 페이지에 넣으면 코드가 잘 실행됩니다. 그러나 스크립트를 테스트 웹 서버에서 파일로 분리하려고 시도하면 실행이 중지됩니다.

도와 주시겠습니까?

관련 코드는 아래에 언급되어 헤드 요소

<head> 
     <meta charset="utf-8" /> 
     <!-- For proper rendering and touch zooming in mobile devices --> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 

     <link rel="shortcut icon" type="image/x-icon" href="images/logo.ico" /> 

     <title><?= htmlspecialchars($title) ?></title> 
     <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> 
     <link rel="stylesheet" type="text/css" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" /> 
     <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/pure/0.6.0/pure-min.css" /> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
     <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 

     <link rel="stylesheet" type="text/css" href="css/style.css" />  
     <script type="text/javascript" src="../javascript/submit-logic.js"></script> 

    </head> 
자바 스크립트 기능의

먼저 2-3 라인 :

$(function() 
{ 
    $('form').submit(function (e) 
    {     
     e.preventDefault(); 

자세한 코드 (HTML, CSS, 자바 스크립트)에서 찾을 수 있습니다 내 codepen (예상대로 작동 중) : http://codepen.io/abbor123/pen/YGwVXg

Javascript 폴더는 Public 폴더 외부에 배치되며 권한이 755입니다. .

편집 1 :

파일 트리 스크린 샷 :

File Tree

콘솔 오류 스크린 샷

:. (제출-logic.js 내 자바 스크립트 파일의 이름입니다 URL 이 링크를 가리키며 언급 됨 : /javascript/submit-logic.js:1)

Console Error

자바 스크립트 코드 페이지는 다음 URL에서 확인할 수 있습니다 https://gist.github.com/abor123/3193eb399c3f973be453ae9a8fcc0ce5

+1

지금 우리는 당신이 당신의 루트 (index.html이 어디에 있는지) 위에 있다면 js 파일이있는 'javascript'라는 이름의 폴더 만 있다고 가정 할 수 있습니다. 파일의 파일 트리를 제공 할 수 있다면 도움이 될 것입니다. – Chewtoy

+1

@Chewtoy가 말했듯이, 문제가 무엇인지 명확하게 밝히지 않았습니다. 브라우저 콘솔에서 오류를 확인할 수 있습니까? 가능한 파일을로드 할 수 없거나 서버에서 500 오류가 발생하고 디버그에 도움이됩니다. – Aeolingamenfel

+2

"Javascript 폴더가 공용 폴더 외부에 배치되었습니다."- 해당 폴더가 존재하는 경우 공용 폴더에없는 정적 파일을 제공하도록 서버를 구성한 경우 놀랍습니다. – Quentin

답변

2
은으로 public_html로 자바 스크립트 폴더를 이동

. Quentin이 언급했듯이, 서버가 public_html 외부의 파일을 제공하도록 설정되지 않은 것 같습니다.

+0

javascript 폴더를 public_html로 이동했습니다.하지만 public_html 외부의 PHP 파일이 자바 스크립트가 아닌 이유를 이해할 수 없습니다. 내가 이것을 이해하게 만들까? @Quentin – ABor

+1

비공개 PHP 파일은 브라우저에서 요청하지 않습니다. 그것들은 PHP 자체에서만 사용됩니다. – Quentin

+0

@ Quentin의 요점을 자세히 설명하기 위해 PHP는 * 서버 측 *을 실행합니다. 이론적으로는 (권한을 부여한) 전체 서버에 대한 액세스 권한을 가지므로 공용 루트 외부의 항목에 액세스 할 수 있습니다. 아파치/Nginx/etc. 보안을 위해 문서 루트 아래의 폴더 및 파일에 대한 클라이언트 액세스를 제한하므로 브라우저에서로드해야하는 모든 항목에 액세스 할 수 있어야합니다. – Aeolingamenfel

관련 문제