Я недавно начал изучать хрюканье, и я сделал это, опробовав семена .Grunt, развертывание облаков и скомпилированные файлы
Он использует gruntfile для копирования статических активов, CSS, JavaScript в папку назначения с этим кодом:
dist_js: {
files: [{
src: ['<%= app_files.js %>', '<%= vendor_files.js %>'],
dest: '<%= dist_dir %>/public',
cwd: '.',
expand: true
}]
}
где dist_dir является 'расстояние'.
Теперь в файлах конфигурации указано, что в процессе развития мы хотим служить активы, ЦСИ и файлы поставщика из исходного местоположения, поэтому конфигурация курьерским для развития выглядит следующим образом:
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')));
В производстве , код:
app.use(express.static(path.join(__dirname, 'public')));
Когда я двигаю это производство (в частности, к OpenShift), шаблон index.html подается со всеми тегами сценария и ссылок, но скрипты и CSS не найдены. То, что я получаю, это «Невозможно GET file.css», например.
Я запускаю сборку и компиляцию на облаке, а вывод «Готово без ошибок», но файлы нигде не найдены. Я пробовал слишком много вещей, и у меня кончились идеи. Я пропустил что-то принципиальное о ворчании?
EDIT: Проблема заключалась в том, что файлы javascript, выполняющие маршрутизацию, расположены внутри src/server, поэтому __dirname указывает на это местоположение. Однако Grunt выполнил копирование внутри корня проекта.
app.use(express.static(path.join(__dirname, '../../dist/public')));
Это устранило проблему.
Можете ли вы опубликовать немного больше о своей структуре каталогов? –
Я клонировал семя (https://github.com/ng-vu/ng-express-boilerplate) и еще не изменился, просто добавил некоторые переменные сдвига, чтобы запустить его правильно в облаке (также добавлено действие крючок для ворчания). – Nirri
В любом случае вы можете разместить ссылку на свой git repo? –