首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >咕噜、云部署和编译的文件

咕噜、云部署和编译的文件
EN

Stack Overflow用户
提问于 2015-05-07 12:47:59
回答 1查看 279关注 0票数 0

最近,我开始探索“咕噜”,并尝试了https://github.com/ng-vu/ng-express-boilerplate种子。

它使用gruntfile将静态资产、css、javascript复制到目标文件夹,其中包含以下代码:

代码语言:javascript
复制
dist_js: {
    files: [{
        src: ['<%= app_files.js %>', '<%= vendor_files.js %>'],
        dest: '<%= dist_dir %>/public',
        cwd: '.',
        expand: true
     }]
}

其中dist_dir是“dist”。

现在,在配置文件中指定,在开发过程中,我们希望从它们原来的位置为资产、src和供应商文件提供服务,因此速递用于开发的配置如下:

代码语言:javascript
复制
app.use('/assets', express.static(path.resolve(__dirname, '../assets')));
app.use('/src', express.static(path.resolve(__dirname, '../../src')));
app.use('/vendor', express.static(path.resolve(__dirname, '../../vendor')));

在生产中,代码是:

代码语言:javascript
复制
app.use(express.static(path.join(__dirname, 'public')));

当我将它移到生产(特别是openshift)时,index.html模板与所有脚本和链接标记一起使用,但是没有找到脚本和css。例如,我得到的是“无法获得file.css”。

我在云上运行grunt构建和编译,输出“完成,没有错误”,但是文件找不到。我已经尝试了太多的东西,我已经没有任何想法了。我是不是漏掉了一些关于咕噜的基本内容?

编辑:问题是执行路由的javascript文件位于src/server中,因此__dirname指向该位置。然而,Grunt在项目根目录中进行了复制。

代码语言:javascript
复制
app.use(express.static(path.join(__dirname, '../../dist/public')));

这个解决了问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-07 13:17:18

你需要用一条路线来暴露你的资产。

app.use(express.static(path.join(__dirname, 'dist/public')));

在运行npm之后,您需要修改package.json文件以调用grunt。若要执行此操作,请添加以下内容。

代码语言:javascript
复制
"scripts": {
    "start": "node ./src/server/app.js",
    "postintall": "grunt build; grunt compile"
}

此外,定义一个将这两个任务结合在一起的新任务可能更好。

Gruntfile.js

代码语言:javascript
复制
grunt.registerTask("prep-for-cloud", [ "compile", "build" ]);

然后,您的package.json将如下所示。

代码语言:javascript
复制
"scripts": {
    "start": "node ./src/server/app.js",
    "postintall": "grunt prep-for-cloud"
}

此外,还应该将grunt-cli作为依赖项添加到package.json文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30101525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档