leptos-use/examples/ssr
Maccesch ec6027c59e Merge branch 'main' into leptos-0.7
# Conflicts:
#	CHANGELOG.md
#	Cargo.toml
#	src/is_err.rs
#	src/is_none.rs
#	src/is_ok.rs
#	src/is_some.rs
#	src/storage/use_local_storage.rs
#	src/storage/use_session_storage.rs
#	src/storage/use_storage.rs
#	src/use_broadcast_channel.rs
#	src/use_cookie.rs
#	src/use_device_pixel_ratio.rs
#	src/use_event_source.rs
#	src/use_to_string.rs
#	src/use_websocket.rs
#	src/utils/codecs/string/from_to_string.rs
#	src/utils/codecs/string/json.rs
#	src/utils/codecs/string/prost.rs
2024-07-22 23:12:46 +01:00
..
public added SSR feature 2023-07-14 22:43:19 +01:00
src Merge branch 'main' into leptos-0.7 2024-07-22 23:12:46 +01:00
style made ElementMaybeSignal's from string conversion SSR safe. 2023-10-28 16:18:29 -05:00
.gitignore added SSR feature 2023-07-14 22:43:19 +01:00
Cargo.toml added cookie support to use_color_mode 2024-04-10 22:51:01 +01:00
README.md added SSR feature 2023-07-14 22:43:19 +01:00
rust-toolchain.toml added SSR feature 2023-07-14 22:43:19 +01:00

Leptos-Use SSR Example

Running the example

cargo leptos watch

Installing Additional Tools

By default, cargo-leptos uses nightly Rust, cargo-generate, and sass. If you run into any trouble, you may need to install one or more of these tools.

  1. rustup toolchain install nightly --allow-downgrade - make sure you have Rust nightly
  2. rustup target add wasm32-unknown-unknown - add the ability to compile Rust to WebAssembly
  3. cargo install cargo-generate - install cargo-generate binary (should be installed automatically in future)
  4. npm install -g sass - install dart-sass (should be optional in future

Compiling for Release

cargo leptos build --release

Will generate your server binary in target/server/release and your site package in target/site

Testing Your Project

cargo leptos end-to-end
cargo leptos end-to-end --release

Cargo-leptos uses Playwright as the end-to-end test tool.
Tests are located in end2end/tests directory.

Executing a Server on a Remote Machine Without the Toolchain

After running a cargo leptos build --release the minimum files needed are:

  1. The server binary located in target/server/release
  2. The site directory and all files within located in target/site

Copy these files to your remote server. The directory structure should be:

start-axum
site/

Set the following environment variables (updating for your project as needed):

LEPTOS_OUTPUT_NAME="start-axum"
LEPTOS_SITE_ROOT="site"
LEPTOS_SITE_PKG_DIR="pkg"
LEPTOS_SITE_ADDR="127.0.0.1:3000"
LEPTOS_RELOAD_PORT="3001"

Finally, run the server binary.