我想在网址下app提供与assets文件夹位于同一级别的文件夹/app.
可以AppController根据网址提供文件,但是我想知道是否有可能像下面的快递一样做这个?
app.use(express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)
Edw*_*uth 12
您可以通过将自定义中间件添加到config/http.js中来使用自定义中间件进行快速传输:
var express = require('express');
module.exports.express = {
customMiddleware: function (app) {
app.use(express.logger());
app.use(express.compress());
app.use('/app', express.static(process.cwd() + '/../client/www/'));
}
};
Run Code Online (Sandbox Code Playgroud)
在我的头顶,有两个选择:
assets/app指向目标的符号链接.资源应该可以访问,http://your.host.com/app/*因为这是Sails服务资产的方式.在Sails下面还有Express,你应该可以通过它来访问它sails.express.app并做你的事情,比方说config/bootstrap.js:
var express = require('express');
...
sails.express.app.use(express.static(process.cwd() + '/app'));
小智 5
我正在使用 Sails.js v0.12.4。http.js 使用module.exports.http而不是module.exports.express 我执行了以下操作来提供另一个文件夹,例如现有/assets文件夹。在我提供app文件夹的示例中,将'node_modules/bootstrap/dist'路径替换为/app
config/http.js在我添加的文件中
var express = require('express');
Run Code Online (Sandbox Code Playgroud)
然后在middleware对象中我添加了 Express static 模块。我想提供我的node_modules文件夹中包含的引导资源。
bootstrapAssets: express.static('node_modules/bootstrap/dist'),
Run Code Online (Sandbox Code Playgroud)
然后在order数组中,我'bootstrapAssets'按照我希望该中间件运行的顺序添加了 。这是完整的代码:
var express = require('express');
module.exports.http = {
middleware: {
passportInit : require('passport').initialize(),
passportSession : require('passport').session(),
bootstrapAssets : express.static('node_modules/bootstrap/dist'),
order: [
'startRequestTimer',
'cookieParser',
'session',
'bootstrapAssets',
'passportInit',
'passportSession',
'myRequestLogger',
'bodyParser',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'$custom',
'router',
'www',
'favicon',
'404',
'500'
],
Run Code Online (Sandbox Code Playgroud)
现在,在我的 HTML 中,我可以使用以下命令访问 bootstrap css:
<link rel="stylesheet" href="/css/bootstrap.min.css">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10215 次 |
| 最近记录: |