Symfony Homestead nginx通过gulpfile和乙烯基fs生成的符号链接提供内容

Symfony Homestead nginx通过gulpfile和乙烯基fs生成的符号链接提供内容,symfony,nginx,gulp,symlink,Symfony,Nginx,Gulp,Symlink,对于我的symfony项目,我使用以下gulpfile.js管理前端资产: var gulp = require('gulp'); var rename = require('gulp-rename'); var vfs = require('vinyl-fs'); /** * Location where to store the 3rd party libraries */ var frontend_folder="./frontend" var vendor_folder=`${fron

对于我的symfony项目,我使用以下
gulpfile.js
管理前端资产:

var gulp = require('gulp');
var rename = require('gulp-rename');
var vfs = require('vinyl-fs');

/**
* Location where to store the 3rd party libraries
*/
var frontend_folder="./frontend"
var vendor_folder=`${frontend_folder}/vendor`
var frontent_dev_folder_js=`${frontend_folder}/js`
var frontent_dev_folder_js=`${frontend_folder}/css`

/*################################### Installing Dependencies ###############################*/

//Move Bootstrap
gulp.task('move_bootstrap',function(done){

  var bootstrap_dir='./node_modules/bootstrap/dist';
  var dest=`${vendor_folder}/bootstrap`;

  var css_files=[`${bootstrap_dir}/css/bootstrap.min.css`,`${bootstrap_dir}/css/bootstrap.min.css.map`];
  var js_files=[`${bootstrap_dir}/js/bootstrap.bundle.min.js`,`${bootstrap_dir}/js/bootstrap.bundle.min.js.map`];

  gulp.src(css_files).pipe(gulp.dest(`${dest}/css`));
  gulp.src(js_files).pipe(gulp.dest(`${dest}/js`));

  done();
})

//Jquery & miscellanous Javascript move
gulp.task('move_jquery',function(done){
  var jqueryFiles=['./node_modules/jquery/dist/jquery.min.js'];
  gulp.src(jqueryFiles).pipe(gulp.dest(vendor_folder));

  done();
});

//For fontawesome
gulp.task('move_fontawesome',function(done){
  var path='./node_modules/font-awesome';
  var dest=vendor_folder+'/font-awesome';

  gulp.src(path+'/fonts/*').pipe(gulp.dest(dest+'/fonts'));
  gulp.src(path+'/css/font-awesome.min.css').pipe(gulp.dest(dest+'/css'));
  done();
});


/******* Build Final Steps ****************************************************/

gulp.task('link_assets',function(done){

  vfs.src(frontend_folder+'/*', {followSymlinks: false})
        .pipe(vfs.symlink('./web/assets/'));

  return done();
});

/* ############################################ Installing Dependencies ##################################### */

gulp.task('move_frontend', gulp.series(['move_bootstrap','move_jquery','move_fontawesome'],(done)=>{done()}));
gulp.task('dev',gulp.series(['move_frontend','link_assets'],(done)=>{done();}));

gulp.task('default',gulp.series(['dev'],(done)=>{done()}));
有一项任务可以为文件夹中存在的任何内容生成符号链接,该文件夹位于我的项目根目录中,名为
frontend
,并将其链接到
/web/assets
文件夹中。换句话说,我的项目根目录是:

-
-- frontend
...
-- web
---assets
---- ^any folder located in frontedn symlinked here^
此外,我将以下资产配置放在
config.yml
中:

framework:
...
    assets:
        packages:
            vendor:
                base_path: '/assets/vendor'
我尝试使我的nginx服务于符号链接内容(用于开发目的),目前我尝试放置以下设置(基于):

但当我访问一个资产时,例如,我得到错误404。为了发展,我使用了宅地流浪者形象,并在流浪者之外执行吞咽任务

为了发展,我使用了宅地流浪者形象,并在流浪者之外执行吞咽任务

这就是问题所在! vagrant的
外部的符号链接正在使用完整路径进行映射,换句话说,您的符号链接指向一个不存在的文件夹,因此在符号链接之后,nginx将访问一个不存在的文件,并且按预期不提供任何内容

因此,我建议通过ssh访问正在运行的vm:

vagrant ssh
然后转到文件夹
~/code

cd ~/code
移除符号链接

rm -rf ./web/assets/*
然后重新运行gulp任务

gulp
这将解决您可能遇到的任何问题

gulp