2016-04-05 31 views
0

Çalıştığım bir Express.io sunucusu var, ancak iyi çalışıyor, ancak Javascript dosyalarım düzgün yüklenmeyecek.Express.io, Javascript dosyasını yüklemiyor

html 
    head 
     h1 Test index 
    body 
     script(src="/socket.io/socket.io.js") 
     script(src="/javascripts/inHTML.js") 

ve şöyle bir coffeescript dosyası:

Şöyle ki, bir Yeşim dosyasına sahip

express = require('express.io') 
app = express() 
r = require('rethinkdb') 

app.get '/', (req, res) -> 
    res.render '../../client.jade' 

Yeşim dosyası düzgün yanı yük ve script(src="/socket.io/socket.io.js") yükleri yapar, Ancak, siteyi Chrome ile incelediğimde ikinci <script> etiketi GET hatasını döndürür. Maalesef başarılı olamayacak şekilde birden fazla yolu denedim. script(src="/socket.io/socket.io.js") neden yüklenir, diğer script neden yok görmüyorum.

Projem şöyle görünür: web

  • coffeescripts (klasör)
  • javascripts içeren ana dizin vardır (klasör - app.js vardır ve inHTML.js)
  • verileri (klasör)
  • node_modules (klasör - /socket.io/socket.io.js vardır)
  • Package.json (dosya)
  • client.jade (dosya)

Ben console.log __dirname Ben de app.use express.static('../' + __dirname) çalıştı baskılar website/javascripts

ya da bir şey benzer, aynı zamanda hiçbir başarıdır.

DÜZENLEME:Express.io Routing Example'u yapmayı denedim, ancak Javascript'i ayrı bir .js dosyasında istiyorum.

+0

Davanızı hata ayıklamak için çok fazla bilgi eksik. '/ Javascripts' değilken'/socket.io' doğru şekilde nasıl haritalanır? Hangi başka yollar ve ara katman tanımlandı? İstenmeyen bir rota için yönlendirme/ara katman tanımlamalarının sıralamasının, eşleştirmek istediğiniz listeden önce '/ javascripts' ile eşleşebileceğini kontrol edin. – cepharum

+0

1. Dosyalarınızı şimdi nasıl sunuyorsunuz? (Express.static kullanıyor musunuz?) 2. socket.io nerede bulunur? 3.Bunu (uygun şekilde) yapmanın doğru yolu, bir klasör için "public" ifadesi kullanmaktır ve bunun içinde servis etmek istediğiniz her şeyi koymaktır; Örneğin javascripts –

+0

Yorumunuz için teşekkürler./Socket.io/socket.io.js/'nin çalışmasında neden tamamen clueless. Sorumu daha fazla bilgi ile düzenleyeceğim. – user3208216

cevap

0

Eğer doğru bir şekilde anlayabiliyorsam, javascript inHTML.js dosyasını execute komut dosyanızla aynı dizinde bulabilirsiniz.js. __dirname, şu anda yürütülen komut dosyasının bulunduğu dizinin adıdır. Bu nedenle, __dirname oturumunu kapattığınızda konsol website/javascripts'u günlüğe kaydeder.

Temel olarak, bu app.use(express.static(__dirname + '/')) ve script(src="inHTML.js") yazacaksınız anlamına gelir. Ya da belki app.use(express.static('../')); ve script(src="javascripts/inHTML.js")

ve ben önereceğim, diğer taraftan da yürütme senaryoyu çiziyor yapılacak en mantıklı şey yazabilirim yine o kök dizininde, app.js varsayarak yaşıyorum ve Aynı alt klasörde statik olarak sunmak istediğiniz tüm dosyaları yerleştirerek. Bu şekilde app.use(express.static(__dirname + '/nameOfSubfolder'));'u belirtebilirsiniz. ve hepsi aynı başlangıç ​​noktasına sahip olduklarından, statik dosyalarınızın yolu daha mantıklı olacaktır.

İlgili konular