-1

localhost/user/signup にアクセスしたときにサインアップ フォームを読み込む node.js アプリがあります。

html
  head
    script(type='text/javascript',src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js')
    script(type='text/javascript',src='javascripts/validator.js')
    script(type='text/javascript',src='javascripts/signupValidation.js')
  body
    p(id='error', style='display:none;')#{error}
    form(id='signup',method='post',action='/signup')
      label(for='firstname') Firstname
      input(type='text', name='firstname')
      label(for='lastname') Lastname
      input(type='text', name='lastname')
      label Username
      input(type='text', name='username')
      label Password
      input(type='password', name='password')
      label Password again
      input(type='password', name='password2')
      label Email
      input(type='email', name='email')

      input(type='submit',value='Sign up', onclick="")

しかし、ページにアクセスすると、サーバー コンソールが JavaScript ファイルを取得する 404 エラーをログに記録し、サインアップ ページを から にロードするように変更したときだけ共鳴するまで、正常に動作していlocalhost/signupましたlocalhost/user/signup

app.get('/signup',user.signupForm);

に:

app.get('/user/signup',user.signupForm);
4

1 に答える 1

0

あなたの質問から、JavaScript ファイルを一緒に移動しなかったので、ディレクトリ構造は次のようになります。

localhost
|- user
|-- signup
|- javascripts

その場合、正しいファイルを指すように JavaScript ファイルの相対パスを変更する必要があります。

script(type='text/javascript',src='../javascripts/validator.js')
script(type='text/javascript',src='../javascripts/signupValidation.js')

絶対パスを使用しない場合、パスは常に現在のディレクトリからの相対パスとして扱われることに注意してください。この場合、システムは 内の JavaScript ファイルを検索しますが、このファイルlocalhost/user/javascripts/は存在しないため、404 エラーが発生します。

于 2012-08-10T09:33:55.547 に答える