# Entry configuration ## Function `app.entry` determines what page to load after the window starts. Its meaning is determined by `app.mode`. ## static mode `static` mode loads HTML files in the project: ```json { "app": { "mode": "static", "entry": "index.html" } } ``` The relative path is based on the project root directory. By default, `index.html` will be loaded as the root path when running: ```text bt://app/ ``` . In this way, front-end routing such as Vue Router `createWebHistory()` can recognize the initial path as `/`. Other entry files will be converted according to the actual path. For example, `pages/start.html` will be converted to: ```text bt://app/pages/start.html ``` The path must be a relative path within the project, not an absolute path, and cannot contain `..`. When the entry resource does not exist, the window will display a startup error page, prompting `入口资源不存在`. ## server mode `server` mode fixedly executes `server.bt` in the root directory of the project, and the window loads the HTTP address specified by `app.entry`: ```json { "app": { "mode": "server", "entry": "http://127.0.0.1:18280" } } ``` In `server.bt`, you need to start the Web service yourself, and ensure that the listening address is consistent with `app.entry`. Currently it is recommended to use `net.listen({ type:'web' })`. ```bt net.listen({ type:'web' bind:'127.0.0.1:18280' sites:[ { domains:['127.0.0.1'] root:'www/' entry:'main.bt' } ] }) ``` ## remote mode `remote` mode directly loads the remote web address: ```json { "app": { "mode": "remote", "entry": "https://example.com" } } ``` `remote` mode `entry` must start with `http://` or `https://`. ## Default | mode | entry Default | |---|---| | `static` | `index.html` | | `server` | `http://127.0.0.1:18280` | | `remote` | `https://example.com` | ## bt:// address Developers generally do not need to hand-write `bt://` in `app.entry`. `static` mode automatically converts relative entries to `bt://app/...`. In `static` mode, paths without extensions will fall back to the entry HTML when the resource does not exist to support SPA history routing refresh; scripts, styles and images with extensions will not fall back. The page can be referenced inside: ```html ``` ## Troubleshooting - The local entrance cannot be opened: check whether `app.mode` is `static`, whether the `entry` file exists, and whether the path does not contain `..`. - The local service cannot be opened: Check whether `server.bt` exists, whether the port is occupied, and whether the listening address of `net.listen` is consistent with `app.entry`. - The remote portal cannot be opened: Check whether the network, certificate, and URL can be opened in a normal browser. - The entry path cannot access files outside the project; both the development directory and Bundle will verify safe relative paths.