[#44] Added frontend hosting using feature
parent
e0ac8ddd24
commit
5a95ee5270
|
@ -4,6 +4,10 @@ version = "1.0.2"
|
|||
authors = ["Jef Roosens <roosensjef@gmail.com>"]
|
||||
edition = "2018"
|
||||
|
||||
[features]
|
||||
# Enables hosting of the frontend
|
||||
frontend = []
|
||||
|
||||
[lib]
|
||||
name = "fej"
|
||||
path = "src/fej/lib.rs"
|
||||
|
@ -41,4 +45,4 @@ diesel_migrations = "1.4.0"
|
|||
[dependencies.rocket_contrib]
|
||||
version = "0.4.7"
|
||||
default-features = false
|
||||
features = ["json", "diesel_postgres_pool"]
|
||||
features = ["json", "diesel_postgres_pool", "serve"]
|
||||
|
|
|
@ -19,7 +19,8 @@ COPY --chown=builder:builder migrations/ ./migrations/
|
|||
RUN cargo install \
|
||||
--path . \
|
||||
--root /app/output \
|
||||
--target x86_64-unknown-linux-musl
|
||||
--target x86_64-unknown-linux-musl \
|
||||
--features frontend
|
||||
|
||||
|
||||
FROM node:15-alpine3.13 AS frontend-builder
|
||||
|
|
|
@ -20,6 +20,8 @@ use rocket::fairing::{Fairing, Info, Kind};
|
|||
use rocket::http::Header;
|
||||
use rocket::{Request, Response, Rocket};
|
||||
use rocket_contrib::databases::diesel;
|
||||
#[cfg(feature = "frontend")]
|
||||
use rocket_contrib::serve::StaticFiles;
|
||||
|
||||
pub struct CORS;
|
||||
|
||||
|
@ -60,12 +62,21 @@ fn run_db_migrations(rocket: Rocket) -> Result<Rocket, Rocket> {
|
|||
}
|
||||
|
||||
fn rocket() -> rocket::Rocket {
|
||||
rocket::ignite()
|
||||
// This needs to be muted for the frontend feature
|
||||
let mut rocket = rocket::ignite()
|
||||
.attach(CORS)
|
||||
.attach(FejDbConn::fairing())
|
||||
.attach(AdHoc::on_attach("Database Migrations", run_db_migrations))
|
||||
.mount("/ivago", routes::ivago())
|
||||
.register(catchers![catchers::not_found])
|
||||
.mount("/api/ivago", routes::ivago()) // /api being hardcoded is temporary
|
||||
.register(catchers![catchers::not_found]);
|
||||
|
||||
// TODO make all of this not hard-coded
|
||||
#[cfg(feature = "frontend")]
|
||||
{
|
||||
rocket = rocket.mount("/", StaticFiles::from("/app/dist"));
|
||||
}
|
||||
|
||||
rocket
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
|
Loading…
Reference in New Issue