Genellikle, sunucunuzun dış dünyaya nasıl yapılandırıldığına ilişkin iç yollarınızdan hiçbirini ortaya çıkarmak istemezsiniz. Yapabileceğiniz şey /scripts
, sunucunuzda, içinde bulunduğu herhangi bir dizinden dosyalarını alan statik bir yol yapmaktır . Yani, dosyalarınız varsa "./node_modules/bootstrap/dist/"
. Ardından, sayfalarınızdaki komut dosyası etiketi şöyle görünür:
<script src="/scripts/bootstrap.min.js"></script>
Eğer nodejs ile ekspres kullanıyorsanız, statik bir yol bu kadar basittir:
app.use('/scripts', express.static(__dirname + '/node_modules/bootstrap/dist/'));
Sonra, herhangi bir tarayıcı istekleri /scripts/xxx.js
irade otomatik olarak getirildiğinden olmak dist
dizinin geneli __dirname + /node_modules/bootstrap/dist/xxx.js
.
Not: NPM'nin daha yeni sürümleri en üst düzeye daha fazla şey koyar, bu kadar derin iç içe yerleştirilmez, bu nedenle NPM'nin daha yeni bir sürümünü kullanıyorsanız, yol adları OP sorusunda ve geçerli yanıtta belirtilenden farklı olacaktır. Ancak, konsept hala aynı. Dosyalar fiziksel olarak sunucu sürücüsünde bulunduğu yeri öğrenmek ve bir yapmak app.use()
ile express.static()
istemci gerçek sunucu dosya sistemi organizasyonu maruz bırakmakla bu yüzden bu dosyalara sahte yolunu yapmak.
Böyle statik bir yol yapmak istemiyorsanız, muhtemelen genel komut dosyalarını web sunucunuzun işlediği bir yola /scripts
veya kullanmak istediğiniz üst düzey atamaya kopyalamaktan daha iyidir . Genellikle, bu kopyalamayı oluşturma / dağıtım işleminizin bir parçası haline getirebilirsiniz.
Bir dizinde yalnızca belirli bir dosyayı herkese açık hale getirmek istiyorsanız ve bu dizinde bulunan her şeyi değil, her dosya için manuel olarak ayrı yollar oluşturabilirsiniz, express.static()
örneğin:
<script src="/bootstrap.min.js"></script>
Ve bunun için bir rota oluşturma kodu
app.get('/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});
Veya, komut dosyaları için rotaları yine de tanımlamak /scripts
istiyorsanız, bunu yapabilirsiniz:
<script src="/scripts/bootstrap.min.js"></script>
Ve bunun için bir rota oluşturma kodu
app.get('/scripts/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});