Skip to content

Commit 67e3b30

Browse files
Copilotlcharette
andcommitted
Fix all relative image paths to use absolute paths
Co-authored-by: lcharette <2566513+lcharette@users.noreply.github.com>
1 parent a752acd commit 67e3b30

24 files changed

Lines changed: 48 additions & 48 deletions

File tree

app/pages/6.0/01.quick-start/docs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ You can now access UserFrosting at: [http://localhost:8080](http://localhost:808
6060

6161
At this point, you should be able to access your application. You should see the default front page:
6262

63-
![Basic front page of a UserFrosting installation](images/front-page.png)
63+
![Basic front page of a UserFrosting installation](/images/front-page.png)
6464

6565
## What's Next
6666

app/pages/6.0/02.background/04.dont-reinvent-the-wheel/docs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ wip: true
66

77
I think that for a lot of developers - novices and professionals alike - building on top of others' work can seem like a betrayal of our trade. We're not "real" developers unless we built everything with our bare hands from scratch, and know firsthand the nitty-gritty details of how our code works. With third-party components, we have to take time to actually *learn* how to use them, and follow *their* rules. I get it. It all feels so antithetical to the DIY spirit that got so many of us into coding in the first place. Trust me, as someone who built a cold frame out of some doors and framing I found in the dumpster, I know:
88

9-
![DIY cold frame](images/cold-frame.jpg?resize=500)
9+
![DIY cold frame](/images/cold-frame.jpg?resize=500)
1010

1111
However unlike me with with my cold frame, software developers aren't limited by the contents of their local dumpster. With the advent of Composer, the PHP community abounds with free, high-quality third-party packages for pretty much every task imaginable. The trick is to know *which* packages to use, and to avoid getting overwhelmed.
1212

app/pages/6.0/02.background/05.security/01.server-misconfiguration/docs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Many PHP developers are used to seeing server-side error messages and stack trac
1010

1111
This is fine in development, and it makes the development cycle tighter by providing immediate feedback to the developer with a simple page refresh or click of a button. However in production (live server), this can lead to serious security breaches:
1212

13-
![Mysql password dumped to browser in PHP](images/display-errors-on.png)
13+
![Mysql password dumped to browser in PHP](/images/display-errors-on.png)
1414

1515
The lesson here is that code can contain sensitive information that we do not want to share with the end user - for example, passwords and API keys. If something goes wrong with the database connection code, it will generate a stack trace that contains the database credentials. By dumping this trace into the response, your application is risking making this information public.
1616

app/pages/6.0/02.background/06.seo/docs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Google can tell when you're copying content from another page. When it sees copi
2929

3030
Having lots of words on a page gives Google more to work with when it determines how relevant that page is. While you may not _need_ a lot of words to get your point across, it signals to search engines that your pages' contents have real value. At the same time, you need to avoid [keyword stuffing](https://en.wikipedia.org/wiki/Keyword_stuffing) - putting an unnatural number of keywords in your content in an attempt to game the ranking algorithm. This used to work in the past, but nowadays search engines will detect and penalize you if every other sentence is "Garden shed painting."
3131

32-
![Real world SEO](images/real-world-seo.png)
32+
![Real world SEO](/images/real-world-seo.png)
3333

3434
To summarize, you need to write the text of your pages so that they have a healthy balance of your target keywords without appearing overly spammy. You _do_ know what your target keywords are, right?
3535

app/pages/6.0/04.installation/02.environment/01.native/02.install/docs.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ php bakery serve
5050
5151
You can now access UserFrosting at [http://localhost:8080](http://localhost:8080). You should see the default UserFrosting pages and login with the newly created master account.
5252
53-
![Basic front page of a UserFrosting installation](images/front-page.png)
53+
![Basic front page of a UserFrosting installation](/images/front-page.png)
5454
5555
> [!TIP]
5656
> To stop the server, hit `ctrl+c`.
@@ -59,7 +59,7 @@ You can now access UserFrosting at [http://localhost:8080](http://localhost:8080
5959
6060
It will help us a lot if you could star [the UserFrosting project on GitHub](https://github.com/userfrosting/UserFrosting). Just look for the button in the upper right-hand corner!
6161
62-
[![How to star](images/how-to-star.png)](https://github.com/userfrosting/UserFrosting)
62+
[![How to star](/images/how-to-star.png)](https://github.com/userfrosting/UserFrosting)
6363
6464
You should also follow us on Twitter for real-time news and updates:
6565

app/pages/6.0/05.troubleshooting/01.debugging/docs.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,31 @@ To open the console in Firefox, use the following shortcuts:
1919
- Windows: <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>K</kbd>
2020
- MacOS: <kbd>Cmd</kbd> + <kbd>Opt</kbd> + <kbd>K</kbd>
2121

22-
![Firefox developer tools](images/firefox-console-1.png)
22+
![Firefox developer tools](/images/firefox-console-1.png)
2323

2424
The tool panel will open (usually docked at the bottom) and you'll notice some tabs at the top of this panel: **Inspector**, **Console**, **Debugger**, **Style Editor**, **Performance**, **Network**, and **Settings**. By default, the Console tab should be selected (if not, click it).
2525

26-
![Firefox developer tools - Console tab](images/firefox-console-2.png)
26+
![Firefox developer tools - Console tab](/images/firefox-console-2.png)
2727

2828
Underneath that, you'll probably see a long list of URLs. These are the requests that your web browser has made so far. To the left of each URL is the request method (GET, POST, PUT, DELETE, etc). To the right is the server response summary. For example, the server responded **HTTP/1.1 200 OK** for the request to **http://localhost/userfrosting/public/alerts**. The status code **200** is used to mean that the request completed "successfully". "Success" is something that your server defines - it's just a way for the server to tell your browser that everything went as expected and that it doesn't need to do anything else.
2929

3030
If you click the response summary, Firefox will open the **Network** tab and show you more details about the request:
3131

32-
![Firefox developer tools - Network tab](images/firefox-console-3.png)
32+
![Firefox developer tools - Network tab](/images/firefox-console-3.png)
3333

3434
To the right, you'll see tabs for **Headers**, **Cookies**, **Params**, **Response**, and **Timings**. If you scroll down in the Headers tab, you'll see a list of the request and response headers. The request headers contain metadata sent with a particular request, and contain information about your browser, the contents of any cookies for the site, and other information. The response headers contain metadata returned by the server for that request. This can include information like cookies that the site wants the client to store or update, as well as things like the type of content (HTML, image, CSS, JSON, etc) being returned.
3535

3636
The **Cookies** tab just displays the contents of any cookie headers in a more easily read format.
3737

3838
#### Params tab
3939

40-
![Firefox developer tools - Params tab](images/firefox-console-4.png)
40+
![Firefox developer tools - Params tab](/images/firefox-console-4.png)
4141

4242
**Params** shows any data sent in the *body* of the request. **This is extremely useful for debugging client-side code.** Often times, a web application appears to "not work" because the server isn't actually being sent the data it expected. The **Params** tab is a good way to check the actual data that was sent with a particular request.
4343

4444
#### Response tab
4545

46-
![Firefox developer tools - Response tab](images/firefox-console-5.png)
46+
![Firefox developer tools - Response tab](/images/firefox-console-5.png)
4747

4848
The **Response** tab shows the data sent in the *body* of the response. For requests to a URL representing a web page (like the URL in your browser's navigation bar), the response body simply contains the actual HTML returned from the server, that your browser initially renders. For other requests, it could contain images, Javascript, or structured data in some other format. For example in the request shown above, the response contains structured JSON data representing a list of users currently registered with the application.
4949

@@ -100,7 +100,7 @@ For example, we can use it to inspect the contents of a JSON object returned by
100100
101101
Now, when we do something that triggers this request, the `console.log` statement will print the contents of the variable `data` to the browser console:
102102
103-
![Firefox developer tools - Debug print statement](images/firefox-console-6.png)
103+
![Firefox developer tools - Debug print statement](/images/firefox-console-6.png)
104104
105105
As you can see in the last line of the console output, `data` is an array containing Javascript objects. If we click on "Object", a panel opens to the right that displays the contents of that object.
106106
@@ -114,7 +114,7 @@ UserFrosting uses a sophisticated error-handling system to capture exceptions th
114114
115115
By default _in development mode only_, UserFrosting will show a detailed debugging page that contains a full stack trace. For example:
116116
117-
![Sample debug error page](images/debug-page.png)
117+
![Sample debug error page](/images/debug-page.png)
118118
119119
This page will also show you the contents of your request, the current session variables, and your server/environment variables. For [obvious reasons](background/security/server-misconfiguration), this debugging page is disabled in production.
120120
@@ -272,7 +272,7 @@ The best approach is to develop your API in isolation from the page or widget th
272272

273273
As it turns out, you can visit `/api/members` _directly in your browser_, and it will show you the output of the data source! Since **visiting a page in your browser is equivalent to making a GET request**, you can append query strings as well:
274274

275-
![Directly viewing the output of a JSON API](images/debug-api.png)
275+
![Directly viewing the output of a JSON API](/images/debug-api.png)
276276

277277
Make sure you get the data API itself working properly and producing the kind of output you expect, before you fiddle with the page and/or Javascript that is consuming the API.
278278

app/pages/6.0/05.troubleshooting/02.getting-help/docs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Check [Stack Overflow](http://stackoverflow.com/tags/userfrosting) and the [issu
4848

4949
Markdown is the _de facto_ standard for basic text formatting on the web. If you are unfamiliar with Markdown, please [take a few minutes to learn](https://guides.github.com/features/mastering-markdown/#what). It will help you all over the web! In particular, please make sure you know where the **backtick** key (`) is located on your keyboard:
5050

51-
![Location of backtick key](images/backtick.png)
51+
![Location of backtick key](/images/backtick.png)
5252

5353
##### Inline code
5454

app/pages/6.0/06.sprinkles/04.customize/docs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ In `default.php`, add the following:
269269

270270
This customizes some basic properties for our application - you can set your site title, author, author's URL, and timezone. Reload the page, and you should see the new site title appear in the upper left corner:
271271

272-
![Overriding site settings in config file](images/site-title.png)
272+
![Overriding site settings in config file](/images/site-title.png)
273273

274274
The template for this page dynamically pulls that particular piece of text from your new configuration file. Note that your value for `site.title` overrides the value of `site.title` in the core sprinkle's configuration file.
275275

app/pages/6.0/08.routes-and-controllers/06.client-input/01.validation/docs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ UserFrosting Fortress solves this problem by providing a uniform interface for v
3030

3131
This process is summarized in the following flowchart:
3232

33-
![Flowchart for unified client- and server-side validation.](images/flowchart-fortress.png?resize=800,600)
33+
![Flowchart for unified client- and server-side validation.](/images/flowchart-fortress.png?resize=800,600)
3434

3535
### Creating a Schema
3636

app/pages/6.0/10.users/01.user-accounts/docs.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ UserFrosting comes with two built-in mechanisms for creating new accounts: publi
6262

6363
In many instances, you will want people to be able to register for your website or application through a publicly accessible page. By default, the registration form is available at `/account/register`.
6464

65-
![Account registration form](images/registration.png)
65+
![Account registration form](/images/registration.png)
6666

6767
When the registration form is submitted, it will `POST` to the `/account/register` endpoint (which invokes the `RegisterAction` method).
6868

@@ -89,17 +89,17 @@ To disable this behavior, set the `site.registration.require_email_verification`
8989

9090
Sometimes, you want to have a site administrator create an account on behalf of a specific user. For some applications, you may want this to be the _only_ way that new accounts can be created. To create a new user as an administrator, use the "create user" button at the bottom of the main user listing page:
9191

92-
![User creation button](images/create-user-button.png)
92+
![User creation button](/images/create-user-button.png)
9393

9494
You can then fill out details for the user. After you create the user, an email will be automatically sent to them that allows them to set their own password.
9595

96-
![User creation](images/create-user.png)
96+
![User creation](/images/create-user.png)
9797

9898
## Login form
9999

100100
By default, the login form is available at `/account/sign-in`. The user provides their email or username as their identity, along with their password. The form is submitted to `/account/login`, which invokes `LoginAction`. This processes the authentication request.
101101

102-
![User sign-in](images/login.png)
102+
![User sign-in](/images/login.png)
103103

104104
The `/account/login` route is throttled via the `throttles.sign_in_attempt` throttle rule. This mitigates against the possibility of brute-force attempts to guess your users' passwords.
105105

@@ -123,7 +123,7 @@ After the page containing the sign-in form receives a response from the server t
123123

124124
Users can reset their passwords by visiting `/account/forgot-password`. They will be asked for their account email address:
125125

126-
![Password reset](images/password-reset.png)
126+
![Password reset](/images/password-reset.png)
127127

128128
Upon submitting a password reset request, a secret token will be issued for the user's account (stored in `password_resets` table), and emailed to them in the form of a link (`/account/set-password/confirm`). The link will take them to a form with the secret token embedded in the page, where they can set their new password. The form is then submitted to `/account/set-password`, which updates the user's password and signs them in.
129129

@@ -143,7 +143,7 @@ For the precise implementation of the password reset and account verification re
143143

144144
Users can update certain attributes of their accounts through the account settings/profile page. By default, this is available at `/account/settings`:
145145

146-
![Account settings page](images/account-settings.png)
146+
![Account settings page](/images/account-settings.png)
147147

148148
As a security measure, users are required to verify their current password before they can update their email address or password. Other fields, like name and locale, do not require the authenticated user to re-enter their password.
149149

@@ -194,15 +194,15 @@ Basic user details (name, email, locale, group) can be modified via the "Edit us
194194

195195
Roles can be added to or removed from a user account via the `Manage roles` button on the user's profile page, or in the dropdown menu in the user table.
196196

197-
![User role management](images/uf-collection.png)
197+
![User role management](/images/uf-collection.png)
198198

199199
By default, only the root account can change users' roles. You may want to modify this to allow site admins to grant a **subset** of the available roles to other users - but be careful! You may not want site administrators to be allowed to elevate other users to site administrator, for example. See the section on [access control](users/access-control) for more information.
200200

201201
### Reset a user's password
202202

203203
Administrators may be able to perform a password reset on behalf of users. This is useful, for example, when you have users who have difficulty with the self-service password reset tool. Password resets can be performed via the "Password" button in the user's profile page, or the "change password" option in the dropdown menu of the user table.
204204

205-
![User password management](images/change-password.png)
205+
![User password management](/images/change-password.png)
206206

207207
You may send a password reset link to the user so that they can change it themselves, or even set a password directly when dealing with particularly technology-adverse users over the phone.
208208

0 commit comments

Comments
 (0)